首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >计算R中的收入和财富份额

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

Stack Overflow用户
提问于 2019-03-17 18:48:22
回答 2查看 667关注 0票数 1

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

我的目的是计算各种收入和财富份额。这是占总人口的x%的收入或财富。

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

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

米维

代码语言:javascript
复制
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
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-03-17 18:55:26

前10%应该是:

代码语言:javascript
复制
sum(w[w > per[2]])/sum(w)

交替:

代码语言:javascript
复制
sum(tail(sort(w), .1 * length(w))) / sum(w)

最后90%是1-前10%.

票数 1
EN

Stack Overflow用户

发布于 2019-03-17 18:58:29

如果我正确地理解了这个问题,下面的就是这样做的。

代码语言:javascript
复制
set.seed(1234)    # Make the results reproducible

w <- rgamma(10000, 3, scale = 1/3)
per <- quantile(w, c(0.1, 0.9))

现在,在前10%找到一个指数i1,并把他们的财富相加。

代码语言:javascript
复制
i1 <- w >= per[2]
sum(w[i1])
#[1] 2196.856

而对于最低的10%,与指数i2相同。

代码语言:javascript
复制
i2 <- w <= per[1]
sum(w[i2])
#[1] 254.6375

注意,我使用的是>=<=。请参阅帮助页?quantile,查看R可以完成的分位数计算的类型。这是由参数type给出的。

编辑

计算前10%和最低10%的财富比例和百分比,除以总财富并乘以100

代码语言:javascript
复制
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
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55210677

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档