如何从多个CSV文件中导入指定列'test'(R语言)
解决方法:提取多个CSV文件中指定列'test'
只需要把原代码中按位置取第一列的[[1]]替换为按列名取指定列的[['test']]即可,修改后的完整代码如下:
filenames <- list.files(pattern = '.csv$', full.names = TRUE) do.call(cbind, lapply(filenames, function(x) { # 读取CSV并提取名为'test'的列 test_col <- read.csv(x)[['test']] # 用文件名作为列名 setNames(data.frame(test_col), tools::file_path_sans_ext(basename(x))) })) -> result
额外提示
如果部分CSV文件可能不存在'test'列,可以添加判断逻辑避免报错:
filenames <- list.files(pattern = '.csv$', full.names = TRUE) do.call(cbind, lapply(filenames, function(x) { df <- read.csv(x) # 判断列是否存在,不存在则返回空数据框(可按需调整处理方式) if ('test' %in% colnames(df)) { test_col <- df[['test']] setNames(data.frame(test_col), tools::file_path_sans_ext(basename(x))) } else { setNames(data.frame(character(0)), tools::file_path_sans_ext(basename(x))) } })) -> result
内容的提问来源于stack exchange,提问作者BosBas
相关产品推荐
相关产品推荐

