R に 2 つの列を持つ非常に大きなデータ フレームがあります。Code
列(factor
858レベルのタイプ)からダミー変数を作成しようとしています。問題は、それを行おうとすると 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
。
小さなデータセットでは機能するが、私のものでは機能しないソリューションがいくつか見つかりました。
を使用してみ
model.matrix
ましたが、R Studio がクラッシュするだけですm <- model.matrix( ~ Code, data = d)
for
でサイクルを試みましifelse
たが、コードが 4 時間実行された後、R Studio がクラッシュしたことに気付きました。for (t in unique(d$Code)) { d[paste("Code", t, sep = "")] <- ifelse(d$Code == t, 1, 0) }
そのようなタイプのデータに対して高速で機能する方法をお勧めしていただければ幸いです。
ありがとう!