Как выбрать столбцы, которые не были суммированы после group_by? - PullRequest
0 голосов
/ 18 января 2019
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 будет одинаковым для каждой группы.

1 Ответ

0 голосов
/ 18 января 2019

Если вы не укажете его с помощью 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

Создано в 2019-01-18 пакетом Представить (v0.2.1)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...