ID 列、Value 列、および Date 列を含むデータ フレームが与えられた場合、次のことを行いたいと思います: 各 ID (ID でグループ化) に対して、最も高い値を持つ行の日付を返します。
> df <- data.frame(ID=c(101, 101, 101, 202), Date=c("2013-04-12", "2013-06-21", "2013-07-06", "2013-07-06"), Value=c(3.4, 5.8, 4.2, 2.1))
> df
ID Date Value
1 101 2013-04-12 3.4
2 101 2013-06-21 5.8
3 101 2013-07-06 4.2
4 202 2013-07-06 2.1
上記のデータ フレームの場合、出力は次のようになります。
ID Date
1 101 2013-06-21 # because it has highest Value for ID=101 (i.e., 5.8)
2 202 2013-07-06 # bacause it has highest Value for ID=202 (2.1)
aggregate() を使用して ID で最大値を取得することは知っていますが、実際に集計された max() 値の代わりに Date 列を返すにはどうすればよいですか?