我有一個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,返回一個矩陣列表。 –