如何使用dplyr按多个变量对_进行分组并对其他变量求和
我有一个数据框如何使用dplyr按多个变量对_进行分组并对其他变量求和,r,dplyr,R,Dplyr,我有一个数据框组合的\u数据,看起来像这样(这只是一个示例): 有多个年份,州名,以及行业 变量,具有关联的VoS__usd值,以及我不再需要的其他列 我正在努力制作这个 Year state_name VoS_thousUSD industry 2008 Alabama 400 Shipping 2009 Alabama 100 Shipping 2010 Ala
组合的\u数据
,看起来像这样(这只是一个示例):
有多个年份
,州名
,以及行业
变量,具有关联的VoS__usd
值,以及我不再需要的其他列
我正在努力制作这个
Year state_name VoS_thousUSD industry
2008 Alabama 400 Shipping
2009 Alabama 100 Shipping
2010 Alabama 250 Shipping
其中,数据帧按年份
、州名
和行业
进行分组,VoS\u千
是这些组的总和
到目前为止我有
combined_data %>%
group_by(Year, state_name, GCAM_industry) %>%
summarise() -> VoS_thousUSD_state_ind
但是我不知道如何/在哪里加上VoS_千美元
。希望使用dplyr管道。我们可以使用
aggregate( VoS_thousUSD~ ., combined_data, FUN = sum)
或使用
dplyr
library(dplyr)
combined_data %>%
group_by(Year, state_name, industry) %>%
summarise(VoS_thousUSD = sum(VoS_thousUSD))
# A tibble: 3 x 4
# Groups: Year, state_name [3]
# Year state_name industry VoS_thousUSD
# <int> <chr> <chr> <int>
#1 2008 Alabama Shipping 400
#2 2009 Alabama Shipping 100
#3 2010 Alabama Shipping 250
库(dplyr)
组合_数据%>%
按(年份、州名称、行业)划分的集团%>%
总结(千美元=总额(千美元))
#一个tibble:3x4
#分组:年份、州名称[3]
#年份国家名称行业VoS(千美元)
#
#1 2008阿拉巴马航运400
#2 2009阿拉巴马航运100
#3 2010年阿拉巴马航运250
数据
combined\u data Changesummary()
tosummary(Vos\u-000usd=sum(Vos\u-000usd))
。当我的页面在关闭后重新加载时,你的答案也加载了它。“评论”和“关闭”不是比一次又一次地写同一个答案更有效吗?@akrun,那一个有点扭曲!我肯定我错过了很多-按组求和,按组平均,排序,合并,我肯定最常见的问题有1000个未标记的重复。但是当我看到它并在其中时,我会尝试关闭它。我被要求不要使用聚合函数,而是使用tidyverse管道。还有可能吗?@MarideeWeber我补充道
library(dplyr)
combined_data %>%
group_by(Year, state_name, industry) %>%
summarise(VoS_thousUSD = sum(VoS_thousUSD))
# A tibble: 3 x 4
# Groups: Year, state_name [3]
# Year state_name industry VoS_thousUSD
# <int> <chr> <chr> <int>
#1 2008 Alabama Shipping 400
#2 2009 Alabama Shipping 100
#3 2010 Alabama Shipping 250
combined_data <- structure(list(Year = c(2008L, 2009L, 2008L, 2010L, 2010L, 2010L,
2008L), state_name = c("Alabama", "Alabama", "Alabama", "Alabama",
"Alabama", "Alabama", "Alabama"), VoS_thousUSD = c(100L, 100L,
200L, 100L, 50L, 100L, 100L), industry = c("Shipping", "Shipping",
"Shipping", "Shipping", "Shipping", "Shipping", "Shipping")),
class = "data.frame", row.names = c(NA,
-7L))