4
考虑以下矢量:计算平均为位数
vec = rnorm(1000)
我想计算该矢量的五分位数,然后平均矢量值对于每个分位。
我知道获得位数的方式是:
qtle = quantile(vec, seq(from = 0, to = 1, by = 0.2)
,但我不知道如何计算每个分位数内的值的平均值(即底部20%的平均值,平均接下来的20%等)以有效的方式进行。
任何想法?
谢谢。
考虑以下矢量:计算平均为位数
vec = rnorm(1000)
我想计算该矢量的五分位数,然后平均矢量值对于每个分位。
我知道获得位数的方式是:
qtle = quantile(vec, seq(from = 0, to = 1, by = 0.2)
,但我不知道如何计算每个分位数内的值的平均值(即底部20%的平均值,平均接下来的20%等)以有效的方式进行。
任何想法?
谢谢。
您可以使用findInterval
和tapply
。
set.seed(1)
vec = rnorm(1000)
qs <- quantile(vec, seq(from = 0, to = 1, by = 0.2))
tapply(vec, findInterval(vec, qs), mean)
# 1 2 3 4 5 6
# -1.46746 -0.54260 -0.02399 0.54492 1.41894 3.81028
谢谢!很好的答案! – Mayou