繁体   English   中英

如何使用ddply将函数应用于按数据帧的另一列中的每个因子划分的一列?

[英]How do I apply a function to one column split by each factor in another column of a data frame using ddply?

M数据如下所示:

标签:1 1 1 2 3 2 5 5 5 2 2 3 3 5 6 7 8 ...
号码:132123838 29 1 23 0283283 2123 3 ...

两列都是数字,我想为Label中的每个因子计算Number的分位数。

#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)

我得到正确的结果,但这是一个“按”类而不是数据框。

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的值。

谢谢!

这给了我想要的结果,但没有使用ddply

result <- do.call(rbind, with(data, {tapply(data$Numbers, data$Label, qfn)}))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM