我想使用group_by函数创建一个数据框,然后基于group_by求和一列。到目前为止,我只能对整个列求和,而不是对整个组求和。
我有一个数据框:
old_df <- data_frame(category1 = c("a", "a", "b", "b"),
category2 = c("2", "1", "3", "4"))
在这里,我想对category1(“ a”和“ b”)进行group_by并将“ a”和“ b”的category2求和。看起来像这样:
new_df <- data_frame(category1 = c("a", "b"),
Sum_category2 = c("3", "7"))
我已经尝试了一些方法,并且我认为下面的方法应该可以工作。
new_df <- old_df %>%
group_by(category1) %>%
summarize(Sum_category2 = sum(category2))
到目前为止,我所做的所有事情都只汇总了整个category2列,在这种情况下,该列等于10。如何仅在分组中求和?
答案 0 :(得分:1)
我不确定您为什么要在类别2中使用字符串,但是以下内容可以正常工作。
library(dplyr)
old_df <- data.frame(category1 = c("a", "a", "b", "b"),
category2 = c(2, 1, 3, 4))
old_df %>% group_by(category1) %>% summarize(sum_category = sum(category2))
old_df
# A tibble: 2 x 2
category1 sum_category
<fct> <dbl>
1 a 3
2 b 7