曾经有网友问我怎样 读取磁盘中数个文件的数据 ,并把这些数据归并 到一张数据表中。这期就跟各人 讲讲怎样 完成如下四种环境 的文件批量读取:
1.对于文件名有规律的环境
办理 方案
# 设置R的工作空间
setwd('D:data filedata1')
#res - NULL
# 初始化数据框,用于背面 的数据归并
data1 - data.frame()
#通过循环完成数据归并
for (i in 1:4){
# 构造数据路径
path - paste0(getwd(),'','test',i,'.xlsx')
#res - c(res,path)
# 读取并归并 数据
data1 - rbind(data1,read_excel(path = path))
}
2.对于文件名没有规律的环境
办理 方案
# 设置工作空间
setwd('D:data filedata2')
# 读取该工作空间下的全部 文件名
filenames - dir()
# 初始化数据框,用于背面 的数据归并
data2 - data.frame()
#通过循环完成数据归并
for (i in filenames){
# 构造数据路径
path - paste0(getwd(),'',i)
#res - c(res,path)
# 读取并归并 数据
data2 - rbind(data2,read_excel(path = path))
}
3.文件名没规律且只读取做后缀的文件
办理 方案
# 设置工作空间
setwd('D:data filedata3')
# 读取该工作空间下的全部 文件名
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))
}
4.文件内容布局 不同等 ,但变量名称同等
办理 方案
# 加载第三方扩展包,用于编写SQL语句
library(sqldf)
# 设置工作空间
setwd('D:data filedata4')
# 读取该工作空间下的全部 文件名
filenames - dir()
# 通过正则,获取全部 xlsx末了 的文件名
filenames2 - grep('.xlsx', filenames, value = TRUE)
# 初始化数据框 ,用于背面 的数据归并
data4 - data.frame()
#通过循环完成数据归并
for (i in filenames2){
# 构造数据路径
path - paste0(getwd(),'',i)
#res - c(res,path)
# 利用 read_excel函数读取xlsx文件
data - read_excel(path = path)
# 利用 sqldf函编写S数QL语句,并把结果 归并 起来
data4 - rbind(data4, sqldf("select id,name,gender,age from data"))
}
以上四种环境 是一样平常 工作中最为常见的,这里通过R语言完成了这几种批量读取数据的落地 ,盼望 可以资助 到必要 的朋侪 。
End.
作者:刘顺祥(中国统计网特邀认证作者)
本文为中国统计网原创文章,必要 转载请接洽 中国统计网(小编微信:itongjilove),转载时请注明作者及出处 ,并保存 本文链接。