このソリューションの小さなバリエーション
ls <- split(final_9880, rep(0:9, each = 1000, length.out = 9880)) # edited to Roman's suggestion
for(i in 1:10) assign(paste("test",i,sep="_"), ls[[i]])
バインドのコマンドは機能するはずです。
編集
多くのデータフレームがある場合は、解析評価コンボを使用できます。読みやすくするためにパッケージを使用していますgsubfn
。
library(gsubfn)
nms <- paste("test", 1:10, sep="_", collapse=",")
eval(fn$parse(text='do.call(rbind, list($nms))'))
これはどのように作動しますか?まず、データフレームのコンマ区切りリストを含む文字列を作成します
> paste("test", 1:10, sep="_", collapse=",")
[1] "test_1,test_2,test_3,test_4,test_5,test_6,test_7,test_8,test_9,test_10"
次に、この文字列を使用してリストを作成します
list(test_1,test_2,test_3,test_4,test_5,test_6,test_7,test_8,test_9,test_10)
文字列補間を使用して使用parse
します。eval
eval(fn$parse(text='list($nms)'))
文字列補間は、fn$
プレフィックスのを介して実装されます。その効果は、変数に含まれる文字列parse
をインターセプトして置換することです。文字列を解析して評価すると、必要なリストが作成されます。このソリューションでは、はparse-evalコンボに含まれています。$nms
nms
"list($mns)"
rbind
編集2
特定のパターンですべての変数を収集し、それらをリストに入れて、行でバインドすることができます。
do.call("rbind", sapply(ls(pattern = "test_"), get, simplify = FALSE))
ls
パターン「test_」を持つすべての変数を検索します
sapply
それらすべての変数を取得し、リストに保存します
do.call
リストを行ごとにフラット化します。