split()
をRで詰まらせる大規模なデータセットがありますが、私はdplyr
group_byを使用することができますが(これはどちらにしても好ましい方法です)結果としてgrouped_df
がデータフレームのリストとして表示され、私の連続した処理ステップで必要なフォーマット(私はSpatialDataFrames
などに強制する必要があります)。split()をdplyrでグループ化するgroup_by:データフレームのリストを返す
は、サンプルデータセットを検討:
df = as.data.frame(cbind(c("a","a","b","b","c"),c(1,2,3,4,5), c(2,3,4,2,2)))
listDf = split(df,df$V1)
戻り
$a
V1 V2 V3
1 a 1 2
2 a 2 3
$b
V1 V2 V3
3 b 3 4
4 b 4 2
$c
V1 V2 V3
5 c 5 2
を私はgroup_by
(group_by(df,V1)
のようなもの)でこれをエミュレートしたいと思いますが、これは1、grouped_df
を返します。私はdo
が私を助けることができなければならないことを知っているが、私は使い方がわからないよ(また、議論のためのlinkを参照してください。)このグループを確立するために使用されてきた要因の名前で名前に各リストを分割
注意 - これは望ましい機能です(最終的には、これらの名前をdfsのリストから抽出するための特典です)。 dplyrする「スティック」に
はなぜ '' split'好まgroup_by'されますか?ハドレーが書いたから? 'group_by'はその場所を持ち、データセットを異なるデータフレームに分割するようには設計されていませんが、splitは正確にそれを実現するように設計されています。 –
いいえ、それはhadleyによって書かれたのではなく、それが完了し、そして速くなるためではありません。私は400mbのdfであるデータセットを持っていますし、分割した結果が怪物になってしまいました(サイズが膨らんだ理由はわかりません)、保存するとRがクラッシュします。これはトレーニングデータセットですが、実際のデータセットは8.5GBのデータセット(RDataとして1GB)です。グループは働き、分割に失敗しました。私はbigsplitを試してみましたが、それをうまく動かすことはできませんでした。それでも、group_by(とdplyr)でこれをどうやって行うのですか? – MartinT
ここでも、 'group_by'はデータセットを分割して別々のデータセットに分割するようには設計されていません。 'do'は恐らく' split'よりもはるかに遅いでしょう。 'split'は完全にベクトル化されコンパイルされた関数なので、他のどの代替関数より遅くなるのか分かりません。 –