首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从R中分组数据框架中计算性别百分比

从R中分组数据框架中计算性别百分比
EN

Stack Overflow用户
提问于 2013-12-07 15:40:43
回答 2查看 6.8K关注 0票数 0

我有相当大的数据框架,其中包括被分成治疗组的个人的信息。我正试图为每个群体产生可变的经济状况和性别百分比。我能够计算出经济状况,但我不知道如何获得性别百分比。

下面,我生成了我的数据的一个小副本:

代码语言:javascript
复制
library(plyr)
#create variables and data frame
sampleid<-seq(1:100)
gender = rep(c("female","male"),c(50,50))
score <- rnorm(100)
age<-sample(25:35,100,replace=TRUE)
treatment <- rep(seq(1:5), each=4)
d <- data.frame(sampleid,gender,age,score, treatment)

>head(d)

  sampleid gender age      score treatment
1        1 female  34  1.6917201         1
2        2 female  26 -1.6189545         1
3        3 female  28  1.2867895         1
4        4 female  34 -0.5027578         1
5        5 female  29 -1.3652895         2
6        6 female  26 -2.4430843         2

我通过以下方法获得每个数字列的平均值:

代码语言:javascript
复制
groupstat<-ddply(d, .(treatment),numcolwise(mean))

这意味着:

代码语言:javascript
复制
  treatment sampleid   age        score
1         1     42.5 29.15  0.142078574
2         2     46.5 29.50 -0.261492514
3         3     50.5 30.50 -0.188393235
4         4     54.5 30.45  0.003526078
5         5     58.5 30.55  0.062996737

然而,我也需要一个额外的专栏“百分比女性”,这应该给我的百分比,在每个治疗组1:5。谁能帮助我如何添加这一点?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-12-07 15:55:47

试试这个

代码语言:javascript
复制
groupstat<-ddply(d, .(treatment),summarise,
                 meansc= mean(score),
                 meanage= mean(age),
                 meanID= mean(sampleid),
                 nfem= length(gender[gender=="female"]), # number females per treatment group
                 nmale= length(gender[gender=="male"]), # number of males per treatment group
                 percentfem= nfem/(nfem+nmale)) # percent females by treatment group
票数 4
EN

Stack Overflow用户

发布于 2013-12-07 16:03:31

我会先分成治疗组(split(d, f = d$treatment))和比calc组(function(x) sum(x$gender == "female")/length(x$gender) )。

代码语言:javascript
复制
sapply(split(d, f = d$treatment), function(x) sum(x$gender == "female")/length(x$gender))
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20443170

复制
相关文章

相似问题

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