我在 R 中有一个相当大的数据框,有两列。我试图从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
. 不管最终行数保持不变还是将相同的行User
合并到一行中,该行有几列非空且计数为Code
s。
我发现了一些适用于较小数据集的解决方案,但不适用于我的。
尝试使用
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) }
在这里找到从分类变量创建新的虚拟变量列
如果您能向我推荐一些快速且适用于此类数据的方法,那就太好了。
谢谢!