Data.table中的多个聚合

时间:2018-03-20 17:35:33

标签: r data.table

这是一个非常常见的模式:

dt[, lapply(.SD, sum, na.rm=TRUE), by=category]

将对按类别分组的子集求和。

但是,如果我想要总结但是意味着怎么样? (使用.SD)

1 个答案:

答案 0 :(得分:0)

假设您在列名中有一个模式,我将使用iris数据集作为示例,模式将是单词' Width'。

dt=as.data.table(iris)
dt[,
   lapply(.SD,
          function(X)
            ifelse(grepl("Width",deparse(substitute(X))),sum(X),mean(X))
          ),by=Species]