【问题标题】:Loop for Read and Merge multiple excel sheets in r循环读取和合并r中的多个excel表
【发布时间】:2014-04-19 02:36:41
【问题描述】:

有很多关于 XLConnect 和使用 XLConnect 读取 R 中的 excel 文件的帖子,例如 How to read multiple excel sheets in R programming?,包括 rbind 函数,但没有人回答这个问题:

如果我在一个目录中有多个 excel .xls 文件,我如何使用循环来读取和合并 每一个都按顺序?

我有一个目录,所以我这样做:

 setwd("C:/Users/usuario/Desktop")
  library(rjava)
  library(XLConnect)

该目录有 28 个 excel 文件,名称如下:

 Bitacora_Metrocali_01_02_2014C
 Bitacora_Metrocali_02_02_2014C
         .    ...    ...
 Bitacora_Metrocali_28_02_2014C

所以我需要使用以下函数合并它们: 合并(x,y,all=T)

因此它可以向数据框添加新列。问题是,我需要一个开始的数据框 合并第一个和第二个,然后按顺序添加所有新工作表。全部出类拔萃 感兴趣的文件在表 1 中。

谢谢!

【问题讨论】:

  • 我可以阅读它们,也可以合并,我的意思是,一个一个。但是我的文件太多了。在示例中,我有 28 个,但还有更多……真的。我需要一个循环来做到这一点。谢谢

标签: r excel merge


【解决方案1】:

这对你有用吗:

# This will give you a vector of the names of files in your current directory 
# (where I've assumed the directory contains only the files you want to read)
data.files = list.files()

# Read the first file
df = readWorksheetFromFile(file=data.files[1], sheet=1)

# Loop through the remaining files and merge them to the existing data frame
for (file in data.files[-1]) {
    newFile = readWorksheetFromFile(file=file, sheet=1)
    df = merge(df, newFile, all=TRUE)
}

【讨论】:

  • 它会出现一些 as.posixct 错误,但那是因为 excel 文件太复杂了。谢谢!我和其他人一起工作过。
【解决方案2】:

这是lapplyReduce 方法 正如您提到的 xls 文件,我正在使用 gdata 包中的 read.xls。 如果是 xlsx,请将 read.xls 替换为 readWorksheetFromFile 并加载相应的库。

library(gdata)
data.files = list.files(pattern = "*.xls") #get list of files
data.to.merge <- lapply(files, read.xls) #read in files using lapply
merged.data <- Reduce(function(...) merge(..., all = T),data.to.merge)#merge all the files

merged.data 将包含来自所有工作表的数据,并且还将处理以下情况 具有不同标题的文件。

【讨论】:

  • 它对我不起作用。 gdata 包不起作用。我必须用 perl 软件做什么才能实现它?
  • 让我给你一个积极的观点,但请帮助我如何使用 gdata 读取 excel 文件,因为我现在不能。我有 Windows 64 位
  • 这些是xlsx文件还是xls文件?
  • 我有一些 .xls 文件,但必须是 .xlsx
  • 这就是 gdata 不起作用的原因!请参阅我的帖子并使用 readWorksheetFromFile 而不是 gdata
猜你喜欢
  • 2020-06-17
  • 2021-01-31
  • 1970-01-01
  • 2018-10-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-06-24
相关资源
最近更新 更多