R数据框问题:合并相同From-To关系的数值并求和
解决R数据框中按From-To分组求和的问题
嘿,这事儿好办!要实现按from-to的组合对number列求和,我给你两种常用的解决方案:
方法1:使用Base R的aggregate()函数
这是不用额外安装包的原生方法,直接就能用:
首先先构造你的初始数据框:
from <- c("A","B","A","C") to <- c("D","F","D","F") number <- c(3,4,6,7) df <- data.frame(from,to,number)
然后用aggregate()按分组求和:
result_base <- aggregate(number ~ from + to, data = df, sum) colnames(result_base)[3] <- "result" # 把列名改成你想要的"result" print(result_base)
运行后就能得到你期望的结果:
from to result 1 A D 9 2 B F 4 3 C F 7
方法2:使用tidyverse的dplyr包
如果你平时习惯用tidyverse的语法,这种链式操作会更直观:
首先需要先安装并加载dplyr包(如果没装过的话):
install.packages("dplyr") # 仅第一次使用时需要安装 library(dplyr)
然后用分组+汇总的操作:
result_dplyr <- df %>% group_by(from, to) %>% summarise(result = sum(number), .groups = "drop") # .groups="drop"是为了取消分组状态 print(result_dplyr)
这个代码同样会输出你想要的结果,而且语法更贴近自然语言,可读性很强。
两种方法都能完美实现你的需求,选你顺手的用就行~
内容的提问来源于stack exchange,提问作者meilirog
相关产品推荐
相关产品推荐

