Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
有没有办法用R中的汇总统计数据来划分组_的答案?_R_Dplyr - Fatal编程技术网

有没有办法用R中的汇总统计数据来划分组_的答案?

有没有办法用R中的汇总统计数据来划分组_的答案?,r,dplyr,R,Dplyr,我正在尝试从三个向量中对数据进行子集划分,然后将算术应用于汇总统计数据,但我在count()方面遇到了问题。下面是使用(summary,dplyr)的摘要,但我希望它以未过滤(X_age65yr)的百分比返回。 例如,阿拉巴马州的过滤计数结果为1667,总计数为2411。我希望阿拉巴马州和所有后续州返回过滤后的总数,或1667/2411=.6914或69.14% cthigh <- brfss2013 %>% filter(bphigh4 == "Yes", !is.na(X_age

我正在尝试从三个向量中对数据进行子集划分,然后将算术应用于汇总统计数据,但我在count()方面遇到了问题。下面是使用(summary,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
cthigh%filter(bphigh4==“Yes”,!is.na(X_age65yr),X_age65yr==“65岁或以上”)%>%
分组依据(X状态)%>%汇总(计数=n())
cthigh
#A tibble:53 x 2
X_状态计数
阿拉巴马州1667
2阿拉斯加507
3亚利桑那州930
4阿肯色州1352
5加利福尼亚1817
6科罗拉多2302
7康涅狄格州1488
8特拉华1123
9哥伦比亚特区1032
10佛罗里达8924
# ... 还有43行
C所有%filter(!is.na(X_age65yr),X_age65yr==“65岁或以上”)%>%
分组依据(X状态)%>%汇总(计数=n())
克塔尔
#A tibble:53 x 2
X_状态计数
阿拉巴马州2411
2阿拉斯加864
3亚利桑那州1578
4阿肯色州2069
5加利福尼亚3111
6科罗拉多4067
7康涅狄格州2362
8特拉华1786
9哥伦比亚特区1683
10佛罗里达14245
# ... 还有43行

您可以计算
bphigh4==“Yes”
的数量,并将其除以每个
X_状态中的行数以获得比率

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)

抱歉耽搁了您的时间;我研究了你的解决方案Ronak,我得到了所有NA,所以在我应用了额外的解决方案之后!对于bphigh4,is.na有效。谢谢大家!@KurtRecker好吧,我是根据你的尝试来帮助你的。我没有您的数据来验证是否有额外的
!is.na(bphigh4)
是必需的。当然。我只是为了交换而澄清。我真的很感谢你的帮助。