2016-08-05 5 views
0

複数のRDSファイル(300+)を読み込んで結合したいディレクトリがありますが、これらのRDSファイルは同じ基本形式を共有しますが、行数が異なります。&各ファイルにはいくつかの異なる列。私は1つの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. データを読み、あなたがすることをしたい場合(一つのテーブルにデータを結合)

それはあなたがfill = TRUEを設定するとき、あなたのための列を異なる処理するためdata.table::rbindlistを使用します?

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

は上記のコードを実行するには、素晴らしい仕事を!そのディレクトリからすべてのファイルを結合するように管理する –

関連する問題