【发布时间】:2013-09-23 17:38:00
【问题描述】:
我正在使用 R 中的一个非常大的数据集,并且一直在使用数据框进行操作,并决定切换到 data.tables 以帮助加快操作速度。我无法理解 J 操作,特别是我试图生成虚拟变量,但我不知道如何在 data.tables[] 中编写条件操作。
MWE:
test <- data.table("index"=rep(letters[1:10],100),"var1"=rnorm(1000,0,1))
我想做的是将列a 到j 添加为虚拟变量,这样当index == "a" 和0 否则时,列a 将具有值1。在 data.frame 环境中,它看起来像:
test$a <- 0
test$a[test$index=='a'] <- 1
【问题讨论】:
-
这是一个可能有帮助的假人示例:stackoverflow.com/questions/18871614/…
-
什么是“极大”?
model.matrix(~var1+index-1, test)是不是太慢了? -
对于我的数据集(900 万行),下面 Frank 的解决方案是唯一有效的解决方案。使用
model.matrix我内存不足。
标签: r data.table dummy-variable