计算R中的收入和财富份额

问题描述 投票:1回答:2

我有一个简单的问题,但我对如何定义十分位数,分位数,百分位数感到困惑。

我的目的是计算各种收入和财富份额。这是占总收入或财富的百分之x%的比例。

所以,假设有人想计算前10%拥有多少财富。

我怎么能在R上做到这一点?我的下面计算是否正确?

MWE

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
r quantile percentile
2个回答
1
投票

前10%应该是:

sum(w[w > per[2]])/sum(w)

交替:

sum(tail(sort(w), .1 * length(w))) / sum(w)

底部90%是1 - 前10%。


1
投票

如果我正确理解了这个问题,以下将会这样做。

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.564983
© www.soinside.com 2019 - 2024. All rights reserved.