我需要将函数应用于多个列,然后聚合这些列。我知道我可以使用lapply
完成此操作。
DT1 <- DT[, lapply(.SD, function(x) sum(x*C - x*exp(num)/sum(exp(num)))),by =.(A, B), .SDcols = c("col1", "col2")]
使用set
或其他功能有更快的方法吗?
修改
经过进一步调查,我发现lapply
是瓶颈。所以基本上问题可以简化为如下。
有更快的方法来计算以下内容吗?
DT1 <- DT[, lapply(.SD, sum),by =.(A, B), .SDcols = c("col1", "col2")]