r - data.table 按组求和并返回具有最大值的行

标签 r data.table

我以这种方式有一个 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/

相关文章:

r - 在R中唯一化重复的列名

r - 更改与 R/lattice 中的多个面板关联的 strip 的背景和文本

r - 当字符串包含特殊字符时检查一个字符串是否包含R中的另一个字符串

r - data.table 聚合遇到 NA 问题

r - 是否有一个 R 函数可以读取带有\n 作为(列)分隔符的文本文件?

R:如何编写一个函数来获取 data.table 中列的级别

r - 检查一个数据帧列中的值或模式与另一列是否匹配

r - 将 tibble 转换为带有列标题的数据框

sql - Rmarkdown - 使用表名作为动态 sql block 中的变量?

r - 当数字列上的键和从文件中读取的数据时,键控 data.table 的 X[Y] 连接失败