1

我有一个包含三个信息的数据集:时间、类型、值。对于每个时间点,我想知道最大值(见(*)),还想知道最大值的对应类型。我知道如何使用聚合来获取每个时间点的最大值,但是如何获取对应的类型呢?

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()或类似的解决方案(不需要额外的包)。

4

1 回答 1

2

merge应该能够为你处理这个:

merge(x, aggregate(value ~ time, data=x, FUN=max))
#   time value type
# 1    1     8    D
# 2    2     7    C
于 2013-11-05T10:22:51.293 回答