2

R に 2 つの列を持つ非常に大きなデータ フレームがあります。Code列(factor858レベルのタイプ)からダミー変数を作成しようとしています。問題は、それを行おうとすると R Studio が常にクラッシュすることです。

> str(d)
'data.frame':   649226 obs. of  2 variables:
 $ User: int  210 210 210 210 269 317 317 317 317 326 ...
 $ Code      : Factor w/ 858 levels "AA02","AA03",..: 164 494 538 626 464 496 435 464 475 163 ... 

列は一意ではありません。Userつまり、同じ を持つ複数の行が存在する可能性がありますUser。最終的に行の数が同じままであるか、同じ行が sUserの数で空でないいくつかの列を持つ 1 つの行にマージされるかどうかは問題ではありませんCode

小さなデータセットでは機能するが、私のものでは機能しないソリューションがいくつか見つかりました。

そのようなタイプのデータに対して高速で機能する方法をお勧めしていただければ幸いです。

ありがとう!

4

1 に答える 1

2

これは私にとって完璧に機能しました:

library(reshape2)
m <- acast(data = d, User ~ Code)

唯一のことは、NAs ではなく s を生成したことですが0、これは次のように簡単に変更できます。

m[is.na(m)] <- 0
于 2014-03-18T18:02:13.777 に答える