合并相同名称并获取支持数据的总和 - Reprex

Posted

技术标签:

【中文标题】合并相同名称并获取支持数据的总和 - Reprex【英文标题】:Merge Same Names and Get Sum of Supporting Data - Reprex 【发布时间】:2021-12-20 04:46:27 【问题描述】:

我有一个包含多次列出的客户名称的数据集。我希望按月合并相同的客户名称,同时获得支持变量的总和。我喜欢使用 dplyr,但无法对支持变量求和(例如 dep_delay 和 arr_delay)。我在下面使用了承运人作为客户名称的代表。感谢您花时间查看此示例!

理想情况下,输出应如下所示:

运营商/月/dep_delay/arr_delay

AA / 1 / 3412 / 12234

UA / 1 / 1517 / 2594

AA / 1 / 12342 / 1231

UA / 1 / 121 / 1234

#代码如下

library(tidyverse)
library(readr)
library(lubridate)
library(nycflights13)

flights_updated <- flights[,c(10,2,6,9)]
flights_updated <- group_by(flights_updated, carrier, month) %>% 
summarise (dep_delay = sum(dep_delay), arr_delay = sum(arr_delay)) 

我也试过这个作为替代方案:

我也尝试了以下代码行,但无济于事:

flights_updated &lt;- flights_updated %&gt;% group_by(carrier, month) %&gt;% summarise_at(vars(dep_delay, arr_delay), sum)

aggregate(cbind(dep_delay, arr_delay) ~ carrier + month, data = flights_updated, sum, na.rm = TRUE)

【问题讨论】:

【参考方案1】:

在周末等待指导之后,我能够从 @Talat 找到答案,这有助于提供所需的指导。 How to sum a variable by group

#Load packages
library(tidyverse)
library(dplyr)
library(readr)
library(lubridate)
library(nycflights13)

flights_updated <- flights[,c(10,2,6,9)]

flights_updated <- flights_updated %>% 
  group_by(carrier, month) %>% 
  summarise(dep_delay = sum(dep_delay), arr_delay = sum(arr_delay))

flights_updated

【讨论】:

以上是关于合并相同名称并获取支持数据的总和 - Reprex的主要内容,如果未能解决你的问题,请参考以下文章

el-table:列表中相同名称的数据实现行合并

合并列并获取计数 SQL Server 2008

有没有办法绘制所有具有相同名称的行的总和

按 ID 合并两个 Excel 文件并合并具有相同名称的列(python、pandas)

有没有办法从字符串中获取数字并使用 XSLT 计算相同的总和?

pandas 在同一张表(相同的数据框)中,如何用新名称和其他行值的总和对不同的行进行分组