使用 mutate_at 对行值求和

Summing row values using mutate_at

我正在尝试使用 mutate_atsum 函数按特定列对行值求和。数据集如下:

Country/Region   1/22/20   1/23/20   1/24/20  1/25/20  1/26/20  1/27/20 
Chili            0         0         0        3        1        2
Chili            1         0         1        4        2        1
China            23        26        123      12       56       70
China            45        25        56       23       16       18

我正在使用以下代码,但不是对所有列值求和,而是得到零。

tb <- confirmed_raw %>% group_by(`Country/Region`) %>%
      filter(`Country/Region` != "Cruise Ship") %>%
      select(-`Province/State`, -Lat, -Long) %>%
      mutate_at(vars(-group_cols()), ~sum) 

我想要的输出是:

Country/Region   1/22/20   1/23/20   1/24/20  1/25/20  1/26/20  1/27/20 
Chili            2         0         1        7        3        3
China            68        51        179      35       72       88

但是所有日期列都不是上面的,而是 0。我该如何解决这个问题?

你能试试 summarise_all 而不是 mutate_at(vars(-group_cols()), ~sum) 吗?

tb %>% group_by(`Country.Region`) %>% summarise_all(funs(sum))

PS:我猜你这里的错别字很少,比如 tb[1,1] 应该 return 1,而不是 2。此外,示例代码并不完全对应于数据(其中没有 Cruise ShipProvince/State。不过,忽略这些,我发现这可以生成预期的输出。

要完成,另一个选项:

tb %>% group_by(`Country/Region`) %>% mutate_all(sum) %>% distinct(`Country/Region`,.keep_all = TRUE)