как я могу добавить в группировки в функции dplyr group_by_at - PullRequest
1 голос
/ 05 апреля 2019

Попытка добавить группировку в таблицу, в которой есть существующая группировка с использованием dplyr, но «add» в group_by_at (), похоже, не работает. У кого-нибудь есть идеи почему?

Пример:

df <- data.frame(col1 = sample(letters,100,replace = T),
                 col2 = sample(letters,100,replace = T),
                 col3 = sample(letters,100,replace = T))

# group_by_at add doesn't work as desired:
df %>%
  group_by(col1) %>%
  group_by_at('col2', add = T) %>%
  summarise(n = n()) 

# but group_by add does work as desired:
df %>%
  group_by(col1) %>%
  group_by(col2, add = T) %>%
  summarise(n = n())

1 Ответ

2 голосов
/ 05 апреля 2019

Нам нужно .add вместо add, поскольку Usage, предложенное в ?group_by_at, равно

group_by_at (.tbl, .vars, .funs = list (), ..., .add = FALSE, .drop = group_drops (.tbl))

df %>%
  group_by(col1) %>%
   group_by_at('col2', .add = TRUE) %>%
   summarise(n = n()) 

ПРИМЕЧАНИЕ. После шага summarise одна из переменных группировки удаляется, особенно последняя переменная группировки

...