在R语言中批量汇总多文件中的Team列数据
R批量汇总多个TXT文件的Team列唯一值
我有一批格式一致的TXT文件,每个文件都包含NameNo、Team等列。已经通过代码files <- list.files(pattern="*.txt", full.names = TRUE)获取了文件列表,此前是逐个用table(Team)统计,现在需要批量汇总每个文件的Team列唯一值,期望输出格式如下:
Item Team Test1 7,8 Test2 2,6 Test3 1
解决方案
- 先定义单个文件处理函数,读取文件后提取并拼接Team列的唯一值:
process_file <- function(file_path) { # 根据文件实际分隔符调整sep,比如逗号分隔用sep="," df <- read.delim(file_path, sep = "\t", stringsAsFactors = FALSE) # 提取唯一Team值,排序后用逗号拼接 unique_teams <- paste(sort(unique(df$Team)), collapse = ",") # 提取不带路径和后缀的文件名作为Item item_name <- tools::file_path_sans_ext(basename(file_path)) data.frame(Item = item_name, Team = unique_teams, stringsAsFactors = FALSE) }
- 批量处理所有文件并合并结果:
# 加载dplyr用于合并数据框(若未安装先运行install.packages("dplyr")) library(dplyr) # 批量处理文件列表 result_list <- lapply(files, process_file) # 合并所有结果为一个数据框 final_result <- bind_rows(result_list) # 输出最终结果 print(final_result)
注意事项
- 务必根据你的TXT文件实际分隔符调整
read.delim中的sep参数,避免读取错误 - 若Team列包含字符型值,排序和拼接逻辑也能正常生效
内容的提问来源于stack exchange,提问作者Ollie
相关产品推荐
相关产品推荐

