r - 有没有办法在 R 中划分 group_by 汇总统计的答案?
问题描述
我正在尝试对来自三个向量的数据进行子集化,然后将算术应用于汇总统计信息,但我遇到了 count() 问题。下面是使用 (summarise, dplyr) 的摘要,但我希望它以未过滤 (X_age65yr) 的百分比形式返回。
例如,阿拉巴马州的过滤计数结果为 1667,总计数为 2411。我希望阿拉巴马州和所有后续州按总数返回过滤计数,或 1667/2411 = .6914 或 69.14%
cthigh <- brfss2013 %>% filter(bphigh4 == "Yes", !is.na(X_age65yr),X_age65yr == "Age 65 or older") %>%
group_by(X_state) %>% summarise(count = n())
cthigh
# A tibble: 53 x 2
X_state count
<fct> <int>
1 Alabama 1667
2 Alaska 507
3 Arizona 930
4 Arkansas 1352
5 California 1817
6 Colorado 2302
7 Connecticut 1488
8 Delaware 1123
9 District of Columbia 1032
10 Florida 8924
# ... with 43 more rows
ctall <- brfss2013 %>% filter(!is.na(X_age65yr),X_age65yr == "Age 65 or older") %>%
group_by(X_state) %>% summarise(count= n())
ctall
# A tibble: 53 x 2
X_state count
<fct> <int>
1 Alabama 2411
2 Alaska 864
3 Arizona 1578
4 Arkansas 2069
5 California 3111
6 Colorado 4067
7 Connecticut 2362
8 Delaware 1786
9 District of Columbia 1683
10 Florida 14245
# ... with 43 more rows
解决方案
您可以计算数量bphigh4 == "Yes"
并将其除以每个中的行数X_state
以获得比率。
library(dplyr)
brfss2013 %>%
filter(!is.na(X_age65yr) & !is.na(bphigh4),X_age65yr == "Age 65 or older") %>%
group_by(X_state) %>%
summarise(count = sum(bphigh4 == "Yes")/n() * 100)
推荐阅读
- javascript - Javascript interferring with GTM
- javascript - '修复所有可自动修复的问题'并没有解决尽可能多的问题 vscode-eslint
- vuejs2 - 无法让 .vue 单文件组件与 NWjs 一起使用
- python - 使用气流蜂巢运算符并输出到文本文件
- python - Function prints the quotation marks and the curly brackets in this for loop function in python
- stripe-payments - Stripe 中的未来约会折扣券?
- javascript - 句子计数中不包括小数
- regression - Don't get the correct lasso MSE
- node.js - Webpack 4 devServer HMR plus full reload on other file changes (like views)
- r - 为什么β回归中的加权和未加权相关性之间没有区别?