如何在R中按district分组生成n_started和n_finished的求和表达式?
按分组生成求和表达式字符串
可以用以下两种方法实现需求:
方法1:使用dplyr(tidyverse工具链)
先加载dplyr与stringr包,通过分组后拼接字符串的方式生成目标格式:
library(dplyr) library(stringr) result <- Data %>% group_by(district) %>% summarise( n_started = str_c(n_started, collapse = "+"), n_finished = str_c(n_finished, collapse = "+"), .groups = "drop" ) print(result)
运行后输出:
# A tibble: 2 × 3 district n_started n_finished <chr> <chr> <chr> 1 A 5+3 9+6 2 B 1+2+6 2+4+7
方法2:使用Base R
无需额外加载包,用aggregate函数实现分组拼接:
result_base <- aggregate( cbind(n_started, n_finished) ~ district, data = Data, FUN = function(x) paste(x, collapse = "+") ) print(result_base)
运行后输出与上述结果一致:
district n_started n_finished 1 A 5+3 9+6 2 B 1+2+6 2+4+7
两种方法的核心逻辑一致:按district分组后,将每组内的数值用+符号拼接成字符串,最终得到你需要的格式。
内容的提问来源于stack exchange,提问作者Simon Harmel
相关产品推荐
相关产品推荐

