只需使用 dplyr,您就可以使用bind_rows向 data.frame 添加一行。在这种情况下,一个summarise语句的结果。因为汇总的结果是带有列名的 data.frame,所以列将被添加到正确的位置,而 Metric_name 的值为空。如果它具有 NA 值,我们将填充值 Total。
df1 %>%
bind_rows(df1 %>%
filter(Metric_name %in% c("apples","bananas","oranges")) %>%
summarise_if(is.numeric, funs(sum))) %>%
mutate(Metric_name = ifelse(is.na(Metric_name), "Total", Metric_name))
Metric_name May Jun
1 apples 11 34
2 bananas 632 640
3 onions 479 503
4 oranges 910 939
5 Total 1553 1613
数据:
df1 <- structure(list(Metric_name = c("apples", "bananas", "onions",
"oranges"), May = c(11L, 632L, 479L, 910L), Jun = c(34L, 640L,
503L, 939L)), class = "data.frame", row.names = c("1", "2", "3",
"4"))