r - 如何选择group_by后未汇总的列?

标签 r dplyr

df <- data.frame(a=1:100, b=1:100, c='categorical')

df %>% summarise(new_a=sum(a), new_b=sum(b)) %>% select(new_a, new_b, c)


Error: `c` must evaluate to column positions or names, not a function

我怎样才能让上面的代码做我想做的,也就是让c.每个组的 c 值都相同。

最佳答案

如果您未使用 group_by 指定它,则默认行为是汇总并仅包含您在 summarize 中指定的内容,因此在您的代码中,列 c 不会'存在。如果您将其指定为一个组,则该列将被包括在内。

library(dplyr)

df <- data.frame(a=1:100, b=1:100, c='categorical')

df %>%
  group_by(c) %>% 
  summarise(new_a=sum(a), new_b=sum(b)) %>% select(new_a, new_b, c)

#> # A tibble: 1 x 3
#>   new_a new_b c          
#>   <int> <int> <fct>      
#> 1  5050  5050 categorical

reprex package 创建于 2019-01-18 (v0.2.1)

关于r - 如何选择group_by后未汇总的列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54259006/

相关文章:

r - 对每个站点的标签进行计数并在 R 中创建汇总表

R - dplyr - 根据多个条件过滤 top_n 行

r - Pivot Longer 将值分布到多个列中

r - For-loop 根据名称模式组合不同的变量

r - 无法从 Linux 终端看到 R 帮助文件

mysql - 如何从 .sql 文件发送查询?

R CMD 检查 : Unusual Checking installed package size note

r - 为什么 subset 只返回奇数行?

r - 使用 dplyr 按自定义顺序排列行

R Str_remove 从管道内的多列中删除