Функция R, которая.макс с tapply

Я пытаюсь сделать кадр данных с максимальным перезаписью по фактору. Я хотел бы кадр данных с 4 строками (по одной для каждого G) с максимумом для X в этой группе и соответствующим значением Y. Я знаю, что мог бы написать цикл, но не хотел бы.

Data<-data.frame(X=rnorm(200), Y=rnorm(200), G=rep(c(1,2,3,4), each=50))
XMax<-tapply(Data$X, Data$G, function(x){max(x, na.rm=T)})
WhichXMax<-tapply(Data$X, Data$G, function(x){which.max(x)})

Функция which.max возвращает номер строки после того, как данные были заданы подстановочным коэффициентом, где я действительно хочу, чтобы номер строки ссылался на строки данных. Так что я мог бы сделать что-то вроде;

YMax<-Data$Y[Which]
MaxData<-data.frame(XMax=XMax, YMax=YMax, G=levels(Data$G))

Ответы на вопрос(3)

Ваш ответ на вопрос