如何解决如何使用group_by计算并满足某些条件的变量百分比
我想计算在退伍军人和非退伍军人群体中"Yes" == infrc
处的梗塞百分比。我尝试过这样的事情:
brfss2013 %>%
filter(!is.na(veteran3)) %>%
group_by(veteran3) %>%
summarise("Infarction rate" = sum("Yes" == infrc)/n())
要完成这项工作,我也必须按infrc
参数分组。但是通过这种方式,n()
将计入较小的组,而不是整个资深和非资深组。
如何计算退伍军人和非退伍军人中的梗死百分比?
为什么仅当我将group_by
与参数infrc
一起使用时,这种构造方式才能起作用?
sum("Yes" == infrc)
这是没有道理的,因为group_by(infrc)
自己将“是”,“否”分为两个组。
解决方法
答案是分别处理数据集中的NA值。当构造sum("Yes" == infrc)
将“是”与NA值进行比较时,它将返回整个结果的NA值。将NA值取平均值时,这很明显,但是在这种情况下,有点令人困惑。因此解决方案是使用像这样的sum("Yes" == infrc) & !is.na(infrc)
这样的代码。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。