在R中提取多个clust_rot前缀CSV文件的Y列合并为数据框
R语言提取合并clust_rot前缀文件Y列的实现代码
实现步骤
- 第一步:匹配所有
clust_rot_前缀的CSV文件
你可以用list.files()函数结合正则表达式筛选目标文件,避免手动逐个输入文件名。 - 第二步:批量读取文件并提取Y列,合并为同一个数据框
你可以选择tidyverse生态的简洁方案,或者不用额外安装包的基础R方案。
方案1:tidyverse实现(更简洁)
# 加载依赖包,如果没安装先运行 install.packages("tidyverse") library(tidyverse) # 1. 筛选目标文件,替换为你的实际文件夹路径 file_list <- list.files( path = "替换为你的CSV文件所在文件夹路径", pattern = "^clust_rot_.*\\.csv$", full.names = TRUE ) # 2. 批量读取提取Y列,按列合并 combined_y_df <- map_dfc(file_list, function(file_path) { # 读取单个CSV temp_df <- read_csv(file_path, show_col_types = FALSE) # 用原文件名作为合并后对应Y列的列名,方便溯源 col_name <- str_remove(basename(file_path), "\\.csv$") # 返回Y列并重命名 select(temp_df, {{col_name}} := Y) })
方案2:基础R实现(无需额外安装包)
# 1. 筛选目标文件,替换为你的实际文件夹路径 file_list <- list.files( path = "替换为你的CSV文件所在文件夹路径", pattern = "^clust_rot_.*\\.csv$", full.names = TRUE ) # 2. 循环读取合并 combined_y_df <- data.frame() for (f in file_list) { temp_df <- read.csv(f) col_name <- gsub("\\.csv$", "", basename(f)) combined_y_df[[col_name]] <- temp_df$Y }
注意事项
- 如果你的CSV文件没有默认表头,可以在
read_csv()/read.csv()中添加参数col_names = c("X", "Y")手动指定列名,避免读取错误 - 最终生成的
combined_y_df就是合并后的数据框,每一列对应一个原始CSV文件的Y列,列名为原始文件名方便溯源
内容的提问来源于stack exchange,提问作者Aradhya Mudigonda
相关产品推荐
相关产品推荐

