使用 mutate_at 对行值求和
Summing row values using mutate_at
我正在尝试使用 mutate_at
和 sum
函数按特定列对行值求和。数据集如下:
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 Ship
或 Province/State
。不过,忽略这些,我发现这可以生成预期的输出。
要完成,另一个选项:
tb %>% group_by(`Country/Region`) %>% mutate_all(sum) %>% distinct(`Country/Region`,.keep_all = TRUE)
我正在尝试使用 mutate_at
和 sum
函数按特定列对行值求和。数据集如下:
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 Ship
或 Province/State
。不过,忽略这些,我发现这可以生成预期的输出。
要完成,另一个选项:
tb %>% group_by(`Country/Region`) %>% mutate_all(sum) %>% distinct(`Country/Region`,.keep_all = TRUE)