读取在不同目录中分配但具有相同名称的R中的多个文件

时间:2013-08-18 20:36:48

标签: r

我正在尝试解决R中有关读取具有相同名称但在不同目录中分配的多个文件的一个小问题。

我有100个名为R04且扩展名为.xlsx的文件,但它们分配在100个不同的目录中,如下所示:

file 1: C:\General Data\Month1\R04.xlsx

file 2: C:\General Data\Month2\R04.xlsx

.

.

.

file 100: C:\General Data\Month2\R04.xlsx

我的问题是我无法阅读这些文件。也许可以用for读取它们,并且由于100个文件中的相同名称,我不知道是否可以用与月份相关的数字命名每个文件,例如在第一个的情况下文件名称应为01,因为第1个月等等。

2 个答案:

答案 0 :(得分:1)

我会使用list.files按模式列出我的文件。然后是一些正则表达式来命名我的文件。

例如:

library(XLConnect)
files.path <- list.files(pattern=".*R04.xlsx",full.names=TRUE)
setNames(lapply(files.path, function(x) read.xlsx(x,1)),
         gsub('.*/(.*)/R04.*','\\1_R04',files.path))

使用一些数据来显示我在gsub处的使用方式:

ll <- c("C:/General Data/Month1/R04.xlsx",
         "C:/General Data/Month2/R04.xlsx",
         "C:/General Data/Month3/R04.xlsx")
gsub('.*/(.*)/R04.*','\\1_R04',ll)
[1] "Month1_R04" "Month2_R04" "Month3_R04"

答案 1 :(得分:0)

尝试使用XLConnect包。

library(XLConnect)
file1 <- readWorksheet(loadWorkbook("C:\General Data\Month1\R04.xlsx"),sheet=1)