数据-R语言-图表-决策-Linux-Python基础知识 数据下载 格式 数据分析

6-R读取多个文件并合并为一个文件

2019-11-29  本文已影响0人  wonphen

R语言可以读取的数据格式

txt,csv,excel,spss,sas,stata,xml,hdf……
access,mysql,oracle……

读取某文件夹下的所有Excel文件

require(openxlsx)
# dir():获取文件夹下所有文件
# pattern:匹配正则表达式
# recursive:是否查找子目录中的文件
# all.files:逻辑值。如果是FALSE,则只返回可见文件的名称
# full.names:是否包含文件绝对路径
# include.dirs:是否递归到子目录
file_names <- dir("C:/Users/Admin/Documents/R/data_set/沙9/【每周统计情况】/原数据/0603-1006/", 
pattern = "*.xlsx", recursive = F, full.names = T)
读取文件

将所有文件合并为一个文件

注意:进行行合并时文件必须具有相同的列名,进行列合并时必须具有完全相同的行名

# 创建存储数据的数据框,直接将第一个文件的数据赋值给它
df <- read.xlsx(file_names[1])
# 从第二个文件开始合并
for (i in 2:length(file_names)) {
  df <- rbind(df, read.xlsx(file_names[i]))}
合并数据

使用同样的方法,也可以将分布在不同文件夹下面的具有相同列的文件合并,或者仅仅是读取到工作空间,如下:

# 不能直接读取带路径的文件名了,不然给读取的文件命名也很长
file_names <- dir("C:/Users/Admin/Documents/R/data_set/沙9/【每周统计情况】/原数据/0603-1006/", 
pattern = "*.xlsx", recursive = F, full.names = F)
path <- "C:/Users/Admin/Documents/R/data_set/沙9/【每周统计情况】/原数据/0603-1006/"
for (i in 2:length(file_names)) {
  #去除名称后缀,获取不带后缀名称
  name <- gsub(".xlsx", "", file_names[i])
  assign(name, read.xlsx(paste0(path, file_names[i], sep = "")))}
上一篇下一篇

猜你喜欢

热点阅读