【发布时间】:2015-12-01 21:18:58
【问题描述】:
我想将下面的数据表按var1和var2分组,然后在var2中求百分比:
data <- as.data.table(list(var1 = c("x1","x1","x2","x1","x2"),
var2 = c("y1","y1","y1","y2","y2")))
data[, .(count = .N), by=.(var1, var2)]
# var1 var2 count
#1: x1 y1 2
#2: x2 y1 1
#3: x1 y2 1
#4: x2 y2 1
这是我感兴趣的结果:
# var1 var2 count ratio in var2
#1: x1 y1 2 0.66
#2: x2 y1 1 0.33
#3: x1 y2 1 0.5
#4: x2 y2 1 0.5
如何更改代码来实现这一点?
【问题讨论】:
-
数据[, .N, by=.(var1, var2)][, ratio:=N/sum(N), by=var1]
-
看来您对 data.table 的了解已经足够自己解决这个问题了。你试过了吗?
-
我不知道为什么我错过了,谢谢。
标签: r data.table grouping