我想获得定制子集中的分位数.例如,在以下数据集中:
data = data.table(x=c(rep(1,9),rep(2,9)),y=c(rep(1:6,each=3)),z=1:18)
- 对于每一行i,我想知道,在x=x[i]和y=<y[i]行中,z[i]的50%分位数(以及进一步计算中的其他分位数,例如10%分位数、5%分位数).
预期输出为
c(2,2,2,3.5,3.5,3.5,5,5,5,11,11,11,12.5,12.5,12.5,14,14,14)
- 对于每行i,我想知道,在x=x[i]和y=<y[i]行中,z[i]的平均值.
预期输出为 (same as 1 in this dataset, but would be different in other datasets).
c(2,2,2,3.5,3.5,3.5,5,5,5,11,11,11,12.5,12.5,12.5,14,14,14)
我可以为它编写一个函数,并使用apply在每一行上循环它.然而,数据集有30000000多行,这需要几天的时间.在R数据中,有没有更快的方法来计算它.餐桌、提袋或其他包装?