M数据如下所示:
标签:1 1 1 2 3 2 5 5 5 2 2 3 3 5 6 7 8 ...
电话:132 123 838 29 1 23 0 283 238 2 123 2 ...
两列都是数字,我想计算Label中每个因子的数字分位数。
#the function I want to use to calc the quantiles
qfn <- function(x) quantile(x, probs = seq(0, 1, 0.2), na.rm = TRUE)
#Using the by function
results <- by(data$Numbers, data$Label, qfn)
我得到了正确的结果,但它是&#34; by&#34;类而不是数据框。
Label: 1
0% 20% 40% 60% 80% 100%
1.2 3.5 7.8 9.10 30.1 105.3
Label: 2
0% 20% 40% 60% 80% 100%
1.9 2.5 5.8 8.10 23.1 99.3
...
如何使用ddply在数据框中获得相同的结果?
当我使用类似的东西时:
results <- ddply(data, "Label", qfn)
我通过Label的因子获得了正确的分组,但在我的情况下,函数应用于错误的列 - 当我希望将函数应用于Numbers时,它也应用于Label的值。
谢谢!
答案 0 :(得分:0)
这让我获得了我想要的结果,但没有使用ddply
result <- do.call(rbind, with(data, {tapply(data$Numbers, data$Label, qfn)}))