手把手教你用R语言批量读取Excel数据文件

  • A+
所属分类:Excel R语言

曾经有网友问我如何读取磁盘中数个文件的数据,并把这些数据合并到一张数据表中。这期就跟大家讲讲如何完成如下四种情况的文件批量读取:

1、对于文件名有规律的情况

手把手教你用R语言批量读取Excel数据文件

解决方案:

  1. # 设置R的工作空间
  2. setwd('D:\\data file\\data1')
  3. #res <- NULL
  4. # 初始化数据框,用于后面的数据合并
  5. data1 <- data.frame()
  6. #通过循环完成数据合并
  7. for (i in 1:4){
  8. # 构造数据路径
  9.   path <- paste0(getwd(),'\\','test',i,'.xlsx')
  10.   #res <- c(res,path)
  11. # 读取并合并数据
  12.   data1 <- rbind(data1,read_excel(path = path))
  13. }

2、对于文件名没有规律的情况

手把手教你用R语言批量读取Excel数据文件

解决方案:

  1. # 设置工作空间
  2. setwd('D:\\data file\\data2')
  3. # 读取该工作空间下的所有文件名
  4. filenames <- dir()
  5. # 初始化数据框,用于后面的数据合并
  6. data2 <- data.frame()
  7. #通过循环完成数据合并
  8. for (i in filenames){
  9. # 构造数据路径
  10. path <- paste0(getwd(),'\\',i)
  11. #res <- c(res,path)
  12. # 读取并合并数据
  13. data2 <- rbind(data2,read_excel(path = path))
  14. }

3、对于文件名没有规律的情况,并且只读取某做后缀的文件

手把手教你用R语言批量读取Excel数据文件

解决方案:

  1. # 设置工作空间
  2. setwd('D:\\data file\\data3')
  3. # 读取该工作空间下的所有文件名
  4. filenames <- dir()
  5. # 通过正则,获取所有xlsx结尾的文件名
  6. filenames2 <- grep('\\.xlsx', filenames, value = TRUE)
  7. # 初始化数据框,用于后面的数据合并
  8. data3 <- data.frame()
  9. #通过循环完成数据合并
  10. for (i in filenames2){
  11. # 构造数据路径
  12. path <- paste0(getwd(),'\\',i)
  13. #res <- c(res,path)
  14. # 读取并合并数据
  15. data3 <- rbind(data3,read_excel(path = path))
  16. }

4、文件内容结构不一致,但变量名称一致

手把手教你用R语言批量读取Excel数据文件

手把手教你用R语言批量读取Excel数据文件

解决方案

  1. # 加载第三方扩展包,用于编写SQL语句
  2. library(sqldf)
  3. # 设置工作空间
  4. setwd('D:\\data file\\data4')
  5. # 读取该工作空间下的所有文件名
  6. filenames <- dir()
  7. # 通过正则,获取所有xlsx结尾的文件名
  8. filenames2 <- grep('\\.xlsx', filenames, value = TRUE)
  9. # 初始化数据框,用于后面的数据合并
  10. data4 <- data.frame()
  11. #通过循环完成数据合并
  12. for (i in filenames2){
  13. # 构造数据路径
  14. path <- paste0(getwd(),'\\',i)
  15. #res <- c(res,path)
  16. # 使用read_excel函数读取xlsx文件
  17. data <- read_excel(path = path)
  18. # 使用sqldf函数编写SQL语句,并把结果合并起来
  19. data4 <- rbind(data4, sqldf("select id,name,gender,age from data"))
  20. }

以上四种情况是日常工作中最为常见的,这里通过R语言完成了这几种批量读取数据的落地,希望可以帮助到需要的朋友。

刘顺祥
误差分位数的默示有效估计与\ 自回归时间序列的预测区间
机器学习电子书
小额消费信贷用户数据
MySQL必知必会

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: