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