R语言:如何用tapply获取分组数据的90%分位数
如何通过
tapply按分组仅计算90%分位数? 你当前用z <- with(tab, tapply(y, x, quantile))得到的是默认的0%、25%、50%、75%、100%分位数集合,想要只获取90%分位数的话,只需要给quantile函数指定probs参数即可——这个参数就是用来定义你要计算的分位数概率值的。
修改后的代码如下:
z <- with(tab, tapply(y, x, quantile, probs = 0.9))
如果之后需要计算多个特定分位数(比如同时要50%和90%),只需要给probs传一个概率向量就行,比如:
z <- with(tab, tapply(y, x, quantile, probs = c(0.5, 0.9)))
用你提供的tab数据框测试的话,运行第一行代码会得到这样的结果:
1 2 3 4 0.0950 0.3330 0.3240 0.2460
每个值对应分组x=1到x=4的90%分位数。
内容的提问来源于stack exchange,提问作者Ph.D.Student
相关产品推荐
相关产品推荐

