我有一个包含三条信息的数据集:时间,类型,价值。对于每一个 时间点,我想知道最大值(见(*)),还有 相应类型的最大值。我知道如何使用聚合来获得 每个时间点的最大值,但如何获得相应的类型?
x <- data.frame(time=c(rep(1:2, 2), rep(2:1, 2)), type=LETTERS[1:4], value=1:8)
aggregate(value ~ time, data=x, FUN=max) # (*) ... but what is the corresponding type?
如果可能,我正在寻找基于aggregate()
,tapply()
之类的解决方案(不需要额外的套餐)。
答案 0 :(得分:2)
merge
应该可以为您处理:
merge(x, aggregate(value ~ time, data=x, FUN=max))
# time value type
# 1 1 8 D
# 2 2 7 C