gpt4 book ai didi

r - 按组对多个分位数进行 ddply

转载 作者:行者123 更新时间:2023-12-03 23:06:32 25 4
gpt4 key购买 nike

我怎样才能做这个计算:

library(ddply)
quantile(baseball$ab)
0% 25% 50% 75% 100%
0 25 131 435 705

按组,按“团队”说?我想要一个行名“团队”和列名“0% 25% 50% 75% 100%”的数据框,即一个 quantile每组调用。

正在做
ddply(baseball,"team",quantile(ab))

不是正确的解决方案。我的问题是每个分组操作的 OUTPUT 在这里是一个长度为 5 的向量。

换句话说,对此有什么巧妙的解决方案(别管标题):
m=data.frame()
for (i in unique(baseball$team)){m=rbind(m,quantile(baseball[baseball$team==i, ]$ab))}
head(m,3)
X120 X120.1 X120.2 X120.3 X120.4
1 120 120.0 120.0 120.00 120
2 162 162.0 162.0 162.00 162
3 89 89.0 89.0 89.00 89

最佳答案

带底座R你可以用 tapplydo.call

library(plyr)
do.call("rbind", tapply(baseball$ab, baseball$team, quantile))

do.call("rbind", tapply(baseball$ab, baseball$team, quantile, c(0.05, 0.1, 0.2)))

或者,使用 ddply
ddply(baseball, .(team), function(x) quantile(x$ab))

关于r - 按组对多个分位数进行 ddply,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22403450/

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