【问题标题】:How to fix error when computing proportions with dplyr使用 dplyr 计算比例时如何修复错误
【发布时间】:2019-06-12 11:11:34
【问题描述】:

我有以下数据集:

a<-data_frame(gender= c(1,1,1,0,0,1,1,0,0,1),
              school= c(2,2,2,2,2,3,3,3,3,3),
             year=c(2011,2011,2011,2012,2012,2011,2011,2011,2012,2012),
              numberofstudents=c(3,3,3,2,2,3,3,3,2,2))

而且我想获得每年每所学校的男性比例。所以,结果应该看起来像

data_frame(maleprop= c(1,0,0.66,0.5),
              school= c(2,2,3,3),
              year=c(2011,2012,2011,2012),
              )

我试过这段代码,不幸的是我有一个错误列maleprop必须是长度1(一个汇总值),而不是3。

final <- a %>%
  group_by(school,year) %>%
  dplyr::summarize(
    school<-mean(school),
    year<-mean(year),
    maleprop <-(sum(gender==1))/(numberofstudents))

如何避免这个问题并获得正确的结果?

【问题讨论】:

    标签: r dplyr


    【解决方案1】:

    看来你的几行太多了。应该这样做:

    final <- a %>%
      group_by(school,year) %>%
      summarize(maleprop = sum(gender)/mean(numberofstudents))
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-09-12
      • 2020-05-23
      • 2021-01-13
      • 2015-04-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多