【问题标题】:Load all R data files from specific folder从特定文件夹加载所有 R 数据文件
【发布时间】:2015-07-27 12:38:03
【问题描述】:

我有很多 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)
}

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

【问题讨论】:

标签: r


【解决方案1】:

试试

 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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-08-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-28
    • 1970-01-01
    • 2023-03-31
    相关资源
    最近更新 更多