R - 使用 dplyr 对分组数据进行聚合(总和)总数

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 医院组,但我不确定如何获得每个月和每年的累计总和(有大量日期列,所以我希望有是一种快速简便的方法)。

很抱歉发布这样一个基本问题 - 任何帮助或建议将不胜感激。

格雷格

hdk*_*rgr 5

使用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

  • `summarise_each` [很快就会] 被弃用,取而代之的是 `summarise_all`、`summarise_at` 和 `summarise_if`。 (2认同)