我以这种方式有一个 data.table:
dd <- data.table(f = c("a", "a", "a", "b", "b"), g = c(1,2,3,4,5))
dd
我需要对值求和
g
按因子 f
,最后返回最大值为g
的单行data.table对象,但这也包含因子信息。 IE。___f|g
1: b 9
到目前为止我最接近的尝试是
tmp3 <- dd[, sum(g), by = f][, max(V1)]
tmp3
结果是:
> tmp3
[1] 9
编辑:理想情况下,我正在寻找一段纯粹的 data.table 代码/工作流。我很惊讶,凭借所有快速的拆分-应用-组合魔法以及以“example[i=subset,]”的形式对数据进行子集化的能力,我还没有找到一种直接的方法来对单个数据进行子集化值条件。
最佳答案
这是一种方法:
library(data.table)
dd <- data.table(
f = c("a", "a", "a", "b", "b"),
g = c(1,2,3,4,5))
##
> dd[,list(g = sum(g)),by=f][which.max(g),]
f g
1: b 9
关于r - data.table 按组求和并返回具有最大值的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29211800/