gpt4 book ai didi

R 函数 which.max with tapply

转载 作者:行者123 更新时间:2023-12-03 18:22:30 28 4
gpt4 key购买 nike

我正在尝试制作一个数据框,其中的最大记录数是一个因子。我想要一个包含 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 函数在数据被 tapply 因子子集化后返回行号,我真的想要引用数据行的行号。所以我可以做类似的事情;
YMax<-Data$Y[Which]
MaxData<-data.frame(XMax=XMax, YMax=YMax, G=levels(Data$G))

最佳答案

library(dplyr)
Data %>%
group_by(G) %>%
filter(X==max(X))

如果你不想包括关系,那么
Data %>%
group_by(G) %>%
arrange(desc(X)) %>%
slice(1)

关于R 函数 which.max with tapply,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30294088/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com