【问题标题】:Find percentage in R filtering for different conditions在 R 过滤中查找不同条件下的百分比
【发布时间】:2025-12-11 07:20:04
【问题描述】:

我正在尝试收集一些关于来自全国健康访谈调查的数据的汇总统计数据,该调查比较了移民和美国出生的工人。例如,我希望能够计算出有多少百分比的工人没有完成高中、完成高中、大学学位等等。我想我可以使用 dplyr 附带的代码,但我不确定最简单的方法!这是我的代码的样子:

NHIS1=数据框,IMMIGRANT=二元指标(1=移民,0=美国出生),NEWEDUC=教育变量(1=12年级或以下(无高中毕业生),2=高中毕业生/GED,3 = 一些大学没有学位,4= 副学士学位,5= 学士及以上)

例如,我想知道: 我如何计算所有高中未毕业工人的百分比 我如何计算只有美国出生的工人获得大学学位的百分比?

我尝试过这样的事情......

NHIS1 %>% group_by(NEWEDUC) %>% sum(percent= 100*n()NEWEDUC == "1") / n())

或仅针对移民群体,执行以下操作: NHIS_test=subset(NHIS1, NEWEDUC==1 & IMMIGRANT==1) nrow(NHIS_test)/nrow(NHIS1$IMMIGRANT==1)

谢谢!

【问题讨论】:

  • 请展示一个带有预期输出的可重现的小例子

标签: r filter dplyr percentage


【解决方案1】:

我不完全理解您的要求,但通常在基础 R 中,您可以执行以下操作以在过滤后获取数据的汇总百分比:

filters1 = NHIS1$NEWEDUC == 1  # didn't graduate high school
sum(filters1) * 100 / nrow(NHIS1)

filters2 = NHIS1$IMMIGRANT == 0 # US born
filters3 = NHIS1$IMMIGRANT == 0 & NHIS1$NEWEDUC %in% c(4, 5) # US born with college degree
sum(filters3) * 100 / sum(filters2)

【讨论】: