2

我在 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合并到一行中,该行有几列非空且计数为Codes。

我发现了一些适用于较小数据集的解决方案,但不适用于我的。

如果您能向我推荐一些快速且适用于此类数据的方法,那就太好了。

谢谢!

4

1 回答 1

2

这对我来说非常有用:

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

唯一的问题是它产生了NAs,而不是0s,但这可以很容易地用这个来改变:

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