我有一个data.table
对象,各列0
s和1
代表不同的'场景',在这个场景下我想聚合一列的值。事情是这样的:在指标变量列中表示的“组”在data.table中聚合的好方法?
require(data.table)
set.seed(1)
a <- ifelse(runif(10) < .5, 0, 1)
b <- ifelse(runif(10) < .5, 0, 1)
c <- ifelse(runif(10) < .5, 0, 1)
foo <- data.table(value=rnorm(10),case.a=a, case.b=b, case.c=c)
而且我想,每一个“案例”来计算,也就是说,的value
之时的情况是1
。我正在尝试这样的事情:
cases <- names(foo)[grep('case',names(foo))]
sapply(cases, function(case) { foo[,value * case] }
它不觉得正确的做法,也不起作用。
这项工作? 'sapply(foo [,case,with = F],val = foo [,value],function(x,val)sum(x * val))' – Whitebeard
Neat,返回一个矩阵列表。 –