I have a data.table in this fashion:
dd <- data.table(f = c("a", "a", "a", "b", "b"), g = c(1,2,3,4,5))
dd
我需要按照因子
f
对值g
进行求和,最后返回一个包含g
的最大值和因子信息的单行数据表对象。___f|g
1: b 9
到目前为止,我最接近的尝试是
tmp3 <- dd[, sum(g), by = f][, max(V1)]
tmp3
这将导致:
> tmp3
[1] 9
编辑:我希望找到一份纯粹的data.table代码/工作流程。我很惊讶,尽管有快速拆分-应用-合并技巧和以'example[i= subset, ]`形式对数据进行子集操作的能力,但我还没有找到一种简单的方式来根据单个值条件进行子集操作。
i
,我认为它主要用于选择数据。 - DaveRGPi
参数来选择最终结果:[which.max(g),]
。通过执行dd[,sum(g),by=f][which.max(V1),]
,我的答案可以缩短一些,但是我使用了list(g = ... )
来保留列名。 - nrussell