1
カテゴリの変数をグループ化して別のグループに集約したい大きなdata.frameがあります。一つの方法は、次のようになります。1つのdata.frameのデータを別のグループにまとめて
cars = mtcars
carb_grps = data.frame(carb = 1:8, carb_grp = rep(c('Low','Mid','High'), c(2,2,4)))
cars = merge(cars, carb_grps, by = 'carb')
aggregate(mpg ~ carb_grp, cars, mean)
carb_grp mpg
1 High 17.35000
2 Low 23.61176
3 Mid 15.90769
しかし、これは、私はより多くのメモリを絆を推測している大規模なdata.table内のすべてのcarb_grp
の詳細を、複製しますか?これを達成するためにRでよりエレガントで効率的な方法があるのだろうか?
ありがとう。 dplyr溶液が好ましく、私はこの例が好きです。しかし、私は、これは私のメソッドと基本的に同じですが、 'carb_grp'データが各データ行ごとに複製される点に注意してください。あなたはRがどのようにこのコラムをフードの下で扱っているのか知っていますか?例えば。 'carb'と' carb_grp'カラムはメモリを最適化するために_factor_クラスである必要がありますか? – geotheory
文字ベクトルがハッシュ(ある種の魔法)に格納されるため、@ファクタベクトルは文字ベクトルと比較してメモリ記憶の点でより効率的ではありません。これはR 2.8以来真実です。この[投稿]を参照してください(http://stackoverflow.com/questions/36507061/what-is-a-good-rule-of-thumb-on-when-to-factorize-columns-in-r/36507363#36507363)詳細はリンクを参照してください。 – lmo
@lmo _factor_は 'object.size'によって返された値に影響を与えるので、混乱します(附属書を参照してください)。私は関数が '推定値'を提供していることに注意してください.. – geotheory