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值将相同。
答案 0 :(得分:3)
如果未使用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(v0.2.1)于2019-01-18创建