从特定文件夹加载所有R数据文件

时间:2015-07-27 12:38:04

标签: r

我有很多Rdata文件,我想在一个数据帧中合并。

我的文件,例如:

file1.RData  
file2.RData  
file3.RData  

所有数据文件都具有以下结构:datafile $ a和datafile $ b。从上面的所有文件中我想加载变量$a并将其添加到已经存在的名为md的数据框中。我的问题不是将文件加载到全局环境中,而是处理RData文件中的数据。

到目前为止,我的代码显然无效。

library(dplyr)
files <- list.files("correct directory", pattern="*.RData")

这将返回正确的文件列表。

我也知道我需要lapply一个函数。

 lapply(files, myFun)

我的问题在于功能。我现在得到的是什么:

myFun <- function(files) {
  load(files)
  df <- data.frame(datafile$a)
  md <- bind_rows(md, df)
}

上面的代码不起作用,我知道如何让它工作?

1 个答案:

答案 0 :(得分:4)

尝试

 library(dplyr)
 bind_rows(lapply(files, myFun))
#    a
#1   1
#2   2
#3   3
#4   4
#5   5
#6   1
#7   2
#8   3
#9   4
#10  5
#11  6
#12  7
#13  8
#14  9
#15 10
#16 11
#17 12
#18 13
#19 14
#20 15

,其中

 myFun <- function(files) {
    load(files)
    df <- data.frame(a= datafile$a)
 }

数据

datafile <- data.frame(a=1:5, b=6:10)
save(datafile, file='file1.RData')

datafile <- data.frame(a=1:15, b=16:30)
save(datafile, file='file2.RData')
files <- list.files(pattern='file\\d+.RData')
files