在不同条件下查找 R 过滤中的百分比

Find percentage in R filtering for different conditions

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

NHIS1=数据框,IMMIGRANT=二元指标(1=移民,0=美国出生),NEWEDUC=教育变量(1=12年级或以下(没有高中毕业),2=高中grad/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)

谢谢!

我不完全理解你的要求,但一般来说,在 base 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)