データセットのリストを読み込んで、これを n と呼びました。私がやりたいことは、n からデータ セットのサブセットを取得し、それらを R で行バインドすることです。行こうとするとrbind(n)
、実際に要素を配置する代わりに、データ セットのすべての名前のデータ フレームが表示されます。互いの下にある各データセット。私がやりたいことは、共通の名前を共有するデータ セットのサブセットをバインドすることです。たとえば、18 個のデータ セットが「4」で始まります。そして、これらすべてを結び付けたいと思います。これを行う簡単な方法はありますか?
質問する
5195 次
2 に答える
11
あなたがしたいことはrbind(n[[1]],n[[2]],...)
と同じではありませんrbind(n)
。
これを書き出す必要はありません。これを使用do.call
して作成および実行できます。call
do.call(rbind, n)
これにより、必要なコマンドが実行されます。ただし、これは遅いことで有名です
パッケージから使用rbindlist
しdata.table
て、同じことをはるかに高速に実行できます
library(data.table)
rbindlist(n)
名前がで始まる要素のみが必要な場合4
rbindlist(n[grep(names(n), pattern = '^4')])
于 2013-02-25T02:45:24.010 に答える
1
多くのファイルを集約しようとするとrbind.fill
、plyr パッケージの関数が必要になる場合があります (同等の data.table があるかどうかはわかりません)。
ll <- list(a=data.frame(x=1,y=2,z=1),
b= data.frame(x=2,y=3),
c=data.frame(x=3:4,y=5))
library(plyr)
Reduce(rbind.fill,ll[c('a','b')]) ## subset by list names and
## apply recursively using Reduce
x y z
1 1 2 1
2 2 3 NA
于 2013-02-25T03:31:42.790 に答える