2016-08-05 126 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

運行上面的代碼工作太棒了!管理整合來自該目錄的所有文件 –