如何在group_by之后对数据框中的列求和?

时间:2019-02-05 00:51:09

标签: r

我想使用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。如何仅在分组中求和?

1 个答案:

答案 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