我想通過一個因素使數據框的最大超過記錄。我想要一個有4行(每個G有一個)的數據框,該組中的X的最大值和相應的Y值。我知道我可以寫一個循環,但寧可不要。R功能which.max與tapply
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函數返回的行數的數據已經被tapply因素,在這裏我真正想要的行號引用數據子集行之後。所以我可以做一些事情;
YMax<-Data$Y[Which]
MaxData<-data.frame(XMax=XMax, YMax=YMax, G=levels(Data$G))
我在我的'真實數據'上試過這段代碼,它給了我6行以上的長度(level(Data $ G))任何想法?它看起來像報道兩個行,如果有領帶?而接受的答案只是爲領帶選擇一個。你也可以解釋一下操作%<%,我以前沒有看到過! :) – LoveMeow