100000リストをすべてデータフレームに結合する最も速い方法を探しています。 ユニオンはdo.call(rbind)の問題ではありません。出力を1つの列に入れ、グループ内の各リストの最小値を追加したいからです。最も早くユニオン化する方法
私は2つの異なるものを試しましたが、かなり遅いので、data.tableまたはdplyrなどを使用して何かを探しています。
a <- c(1:3)
b <- c(12:20)
relations <- list(a,b)
出力私が試した二つの異なる溶液で:私が欲しいものを再現する
例。
1 - rbindは、リストの要素の上にループを有する溶液基本的連結データフレーム:結果からAAデータフレームを作成し、次にCONCATENATEベクトルと:
full_group <- NULL
groups <- NULL
id <- NULL
for(i in 1:length(relations))
{
id <- c(id , relations[[i]])
groups <- c(groups , rep(min(relations[[i]]) , length(relations[[i]])))
print(i)
}
full_group = data.frame(id = id ,
groups = groups)
"id"と "groups"を再割り当てする代わりに、等価的に 'unlist(relation)'と 'rep(sapply(relations、min)、lengths(relations))'を使うことができます。 –
'data.table :: rbindlist'について、関連するSOの質問を読む:https://stackoverflow.com/questions/15673550/why-is-rbindlist-better-than-rbind – jangorecki