Gre*_*tin -1 aggregate r dplyr
我有一个大型数据集,其中包含医院名称、医院组以及每月就诊患者的数量。我正在尝试使用 dplyr 创建一个摘要,其中包含按医院集团汇总的每月就诊患者总数。数据框如下所示:
Hospital | Hospital_group | Jan 03 | Feb 03 | Mar 03 | Apr 03 | .....
---------------------------------------------------------------
Hosp 1 | Group A | 5 | 5 | 6 | 4 | .....
---------------------------------------------------------------
Hosp 2 | Group A | 6 | 3 | 8 | 2 | .....
---------------------------------------------------------------
Hosp 3 | Group B | 5 | 5 | 6 | 4 | .....
---------------------------------------------------------------
Hosp 4 | Group B | 3 | 7 | 2 | 1 | .....
---------------------------------------------------------------
Run Code Online (Sandbox Code Playgroud)
我正在尝试创建一个如下所示的新数据框:
Hospital_group |Jan 03 | Feb 03 | Mar 03 | Apr 03 | .....
----------------------------------------------------------
Group A | 11 | 8 | 14 | 6 | .....
----------------------------------------------------------
Group B | 8 | 12 | 8 | 5 | .....
----------------------------------------------------------
Run Code Online (Sandbox Code Playgroud)
我正在尝试使用 dplyr 来汇总数据,但有点卡住了(正如您可能已经猜到的那样,我对此很陌生)。我已经设法过滤掉了第一列(医院名称)和 group_by 医院组,但我不确定如何获得每个月和每年的累计总和(有大量日期列,所以我希望有是一种快速简便的方法)。
很抱歉发布这样一个基本问题 - 任何帮助或建议将不胜感激。
格雷格
使用summarize_all: 示例:
df <- tibble(name=c("a","b", "a","b"), colA = c(1,2,3,4), colB=c(5,6,7,8))
df
# A tibble: 4 × 3
name colA colB
<chr> <dbl> <dbl>
1 a 1 5
2 b 2 6
3 a 3 7
4 b 4 8
df %>% group_by(name) %>% summarize_all(sum)
Run Code Online (Sandbox Code Playgroud)
结果:
# A tibble: 2 × 3
name colA colB
<chr> <dbl> <dbl>
1 a 4 12
2 b 6 14
Run Code Online (Sandbox Code Playgroud)
编辑:在您的情况下,您的数据框包含您不想聚合的一列(医院名称)。您可能必须先取消选择医院名称列,或者使用summarize_at(vars(-Hospital), funs(sum))代替summarize_all。
| 归档时间: |
|
| 查看次数: |
23535 次 |
| 最近记录: |