Как вызвать несколько переменных для group_by в dplyr - PullRequest
0 голосов
/ 11 мая 2018

Я пытаюсь использовать group_by и суммировать с несколькими столбцами, которые будут интерактивными в блестящем приложении.Таким образом, если я указываю имена столбцов внутри функции group_by, это работает, но если я создаю вектор для имен столбцов, он больше не работает.Ниже приведен пример с набором данных Iris:

# Working
iris %>% group_by(Sepal.Length, Species) %>% 
  summarise(
    `Sum.Sepal.Width` = sum(Sepal.Width)
  )

# Not working
columns <- c("Sepal.Length", "Species")
iris %>% group_by(columns) %>% 
  summarise(
    `Sum.Sepal.Width` = sum(Sepal.Width)
  )

Спасибо.Wlademir.

Ответы [ 3 ]

0 голосов
/ 11 мая 2018

Как уже упоминалось в , этот вопрос , он должен работать, используя group_by_at():

columns <- c("Sepal.Length", "Species")
iris %>% group_by_at(columns) %>% 
  summarise(
    "Sum.Sepal.Width" = sum(Sepal.Width)
)
0 голосов
/ 11 мая 2018

Еще один способ - использовать rlang::syms:

iris %>% 
  group_by(!!! rlang::syms(columns)) %>% 
  summarise(
    `Sum.Sepal.Width` = sum(Sepal.Width)
  )
0 голосов
/ 11 мая 2018

Ошибка в grouped_df_impl (данные, имя (переменная), отбрасывание):

  columns <- c("Sepal.Length", "Species")

  iris %>% group_by(.dots = columns) %>% 
    summarise(
      `Sum.Sepal.Width` = sum(Sepal.Width)
    )
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...