【发布时间】:2019-02-05 00:51:09
【问题描述】:
我想使用 group_by 函数创建一个数据框,然后根据 group_by 对列求和。到目前为止,我只能对整列求和,而不是在组内求和。
我有一个数据框:
old_df <- data_frame(category1 = c("a", "a", "b", "b"),
category2 = c("2", "1", "3", "4"))
从这里开始,我想对 category1(“a”和“b”)进行分组,并分别为“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。我怎样才能让它只在分组内求和?
【问题讨论】:
-
为什么
category2设置为字符变量?如果我运行您的代码,它会因此返回错误。如果我将category2设置为数字c(2, 1, 3, 4)您的代码将按预期工作。 -
你说得对,category2 是数字,我的错。当我以这种方式运行代码时,我只收到一个 1 x 1 的小标题,其中包含整个 category2 列的总和。有什么想法吗?
-
请参阅下面来自@user1357015 的答案。你无法从答案中的数据和代码中得到你描述的输出,所以肯定有些不同。
-
我最终使用了前缀
dplyr::summarize并解决了这个问题。 -
也许你也加载了
plyr包;这可能会导致summarise出现问题。
标签: r