【发布时间】:2017-02-02 14:52:00
【问题描述】:
这是对Subset by group with data.table 使用相同数据表的后续问题:
library(data.table)
bdt <- as.data.table(baseball)
# Aggregating and loosing information on other columns
dt1 <- bdt[ , .(max_g = max(g)), by = id]
# Aggregating and keeping information on other columns
dt2 <- bdt[bdt[, .I[g == max(g)], by = id]$V1]
为什么dt1 和dt2 的行数不同?
dt2 不应该在不丢失其他列中的相应信息的情况下具有相同的结果吗?
【问题讨论】:
-
查看,例如,
bdt[id == "woodge01"][order(-g)]——该 id 有多行最大化g。第二种方法识别所有这样的行,而第一种方法只是返回最大值。这是 max(一个值)和 argmax(一组最大化器)之间的区别:math.stackexchange.com/q/312012 -
感谢您的回复。这完美地阐明了区别!
-
酷,如果您愿意,您可以自己发布答案。
标签: r data.table