「R语言 数据合并」批量读取数据文件合并为一个excel表格

SUNQIQI 2018-08-22

需求分析:

在一个文件夹下里面有很多excel文件,它们字段都一样,这时候需要把他们合并为一个excel表格。

类型1:R语言合并同一个文件夹下的多个csv文件

rm(list = ls())

options(scipen = 200)

#########自定义函数################

readCSV <- function(dir_dta){

file_list <- list.files(path=dir_dta,full.names=T)

varSave_func <- function(x){

table_x <- read.csv(file=x,sep=",",header = T)

}

a<-invisible(lapply(file_list,FUN=varSave_func))

b<-as.data.frame(a[[1]])

for (i in 2:length(a)){

c<-rbind(b,a[[i]])

b <- c

}

return(b)

}

##########调用函数

dir_dta <- "C:/Users/Administrator/Desktop/data"

result <-readCSV(dir_dta)

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24

类型2:R语言合并同一个文件夹下的多个.xlsx文件

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

# 设置工作空间

setwd('D:\data file\data2')

# 读取该工作空间下的所有文件名

filenames <- dir()

# 初始化数据框,用于后面的数据合并

data2 <- data.frame()

#通过循环完成数据合并

for (i in filenames){

# 构造数据路径

path <- paste0(getwd(),'\',i)

#res <- c(res,path)

# 读取并合并数据

data2 <- rbind(data2,read_excel(path = path))

}

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

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

(xls,csv,xlsx 后缀都存在,只读取xlsx)

# 设置工作空间

setwd('D:\data file\data3')

# 读取该工作空间下的所有文件名

filenames <- dir()

# 通过正则,获取所有xlsx结尾的文件名

filenames2 <- grep('\.xlsx', filenames, value = TRUE)

# 初始化数据框,用于后面的数据合并

data3 <- data.frame()

#通过循环完成数据合并

for (i in filenames2){

# 构造数据路径

path <- paste0(getwd(),'\',i)

#res <- c(res,path)

# 读取并合并数据

data3 <- rbind(data3,read_excel(path = path))

}

「R语言 数据合并」批量读取数据文件合并为一个excel表格

相关推荐