2016-08-05 89 views
0

我有一个包含多个RDS文件(300+)的目录,我想要对它们进行读取和组合,这些RDS文件共享相同的基本格式,但行数不同&每个文件中的几个不同列。我有简单的代码来读取一个RDS文件(所有文件都有相同的“活动 - 3digitnumber-4digitnumber-6digitnumber.RDS”)读取多个RDS文件

mydata <- readRDS("Events-104-2014-752043.RDS") 

作为新的数据的科学我敢肯定,这个答案很简单,我是丢失,但我会不得不使用像list.files()和lapply或一些for循环。

+0

'list.files()' –

回答

0

首先重复的例子:

data(iris) 
# make sure that the two data sets (iris, iris2) have different columns 
iris2 = copy(iris) 
iris2$Species2 = iris2$Species 
iris2$Species = NULL 

saveRDS(iris, "Events-104-2014-752043.RDS") 
saveRDS(iris2, "Events-104-2015-782043.RDS") 

现在你需要

  1. 找到所有文件名
  2. 读取数据
  3. 的数据合并到一个表(如果你想要的)

我会使用data.table::rbindlist因为它处理不同的列当您设置fill = TRUE

require(data.table) 
files = list.files(path = '.', pattern = '^Events-[0-9]{3}-[0-9]{4}-[0-9]{6}\\.RDS$') 
dat_list = lapply(files, function (x) data.table(readRDS(x))) 
dat = rbindlist(dat_list, fill = TRUE) 
+0

运行上面的代码工作太棒了!管理整合来自该目录的所有文件 –