最近,笔者正在整理自己的论文数据,因为涉及的Excel表太多,整理数据搞得我苦不堪言。因此,为了节省时间,提高效率,我想到了R可以批量整合数据,彻底解放双手!那么接下来,就跟着笔者的步伐,快速掌握这一功能!简单好用!假设你有这样一个文件夹,里面有许多表,现在你想要把这些表中的数据整合到一个表中,便于分析。你会怎么做?【1】首先,在批量合并数据之前,你需要保证每个Excel中的列名一致!library(readxl)library(dplyr)library(writexl)library(tcltk)
folder_path <- "C:/r-workspace/生态学调查表格"
file_paths <- tk_choose.files( default = "*.xlsx", caption = "选择要合并的xlsx文件", multi = TRUE, filters = matrix(c("Excel文件", "*.xlsx", "所有文件", "*.*"), ncol = 2, byrow = TRUE))
# 检查文件是否被选择if (length(file_paths) == 0) { cat("❌ 没有选择文件,程序结束!\n") quit()}# 查看选择的文件数量length(file_paths)
# 用来存放所有数据all_data <- list()for (i in 1:length(file_paths)) { file_name <- basename(file_paths[i]) # 读取Excel文件 data <- read_excel(file_paths[i]) # 添加文件名作为新列,便于查找和对应 data$文件名 <- file_name # 保存到列表 all_data[[file_name]] <- data cat(sprintf("%02d. %s: %d行 × %d列\n", i, file_name, nrow(data), ncol(data)))}# 合并所有数据merged_data <- bind_rows(all_data)
(nrow(merged_data)) # 总行数(ncol(merged_data)) # 总列数
# 保存到桌面output_file <- "C:/Users/Desktop/合并后的生态学数据.xlsx"write_xlsx(list("合并数据" = merged_data), output_file)# 预览前5行print(head(merged_data, 5))
后台私信 :20260207,即可获得原始数据,然后就可以按照代码练习啦!