我有一个简单的问题,但我对十进制,分位数,百分位数是如何定义的感到困惑。
我的目的是计算各种收入和财富份额。这是占总人口的x%的收入或财富。
所以,假设你想要计算前10%的人拥有多少财富。
我怎么能在R上做到这一点?我下面的计算正确吗?
米维
w<-rgamma(10000, 3, scale = 1/3)
per <- quantile(w, c(0.1, 0.9))
top_1_percent <- (per[2]/sum(w))*100
bottom_90_percent <-per[1]/sum(w))*100发布于 2019-03-17 18:55:26
前10%应该是:
sum(w[w > per[2]])/sum(w)交替:
sum(tail(sort(w), .1 * length(w))) / sum(w)最后90%是1-前10%.
发布于 2019-03-17 18:58:29
如果我正确地理解了这个问题,下面的就是这样做的。
set.seed(1234) # Make the results reproducible
w <- rgamma(10000, 3, scale = 1/3)
per <- quantile(w, c(0.1, 0.9))现在,在前10%找到一个指数i1,并把他们的财富相加。
i1 <- w >= per[2]
sum(w[i1])
#[1] 2196.856而对于最低的10%,与指数i2相同。
i2 <- w <= per[1]
sum(w[i2])
#[1] 254.6375注意,我使用的是>=和<=。请参阅帮助页?quantile,查看R可以完成的分位数计算的类型。这是由参数type给出的。
编辑
计算前10%和最低10%的财富比例和百分比,除以总财富并乘以100。
top10 <- sum(w[i1])/sum(w)
top10
#[1] 0.221291
100*top10
#[1] 22.1291
bottom10 <- sum(w[i2])/sum(w)
bottom10
#[1] 0.02564983
100*bottom10
#[1] 2.564983https://stackoverflow.com/questions/55210677
复制相似问题