Como passar strings denotando expressões para dplyr 0,7 verbos?

Gostaria de entender como passar seqüências de caracteres representando expressões no dplyr, para que as variáveis mencionadas na cadeia sejam avaliadas como expressões em colunas no quadro de dados. ovinheta principal neste tópico aborda a passagem de quosures e não discute seqüências de caracteres.

Está claro que as quosures são mais seguras e mais claras que as strings ao representar expressões; portanto, é claro que devemos evitar strings quando quosures podem ser usadas. No entanto, ao trabalhar com ferramentas fora do ecossistema R, como javascript ou arquivos de configuração YAML, geralmente será necessário trabalhar com cadeias de caracteres em vez de quosures.

Por exemplo, digamos que eu queira uma função que faça um registro agrupado usando expressões passadas pelo usuário / chamador. Como esperado, o código a seguir não funciona, pois o dplyr usa avaliação fora do padrão para interpretar os argumentos paragroup_by.

library(tidyverse)

group_by_and_tally <- function(data, groups) {
  data %>%
    group_by(groups) %>%
    tally()
}

my_groups <- c('2 * cyl', 'am')
mtcars %>%
  group_by_and_tally(my_groups)
#> Error in grouped_df_impl(data, unname(vars), drop): Column `groups` is unknown

No dplyr 0.5, usaríamos a avaliação padrão, comogroup_by_(.dots = groups), para lidar com essa situação. Agora que os verbos sublinhados estão obsoletos, como devemos fazer esse tipo de coisa no dplyr 0.7?

No caso especial de expressões que são apenas nomes de colunas, podemos usar as soluções paraessa questão, mas eles não funcionam para expressões mais complexas, como2 * cyl que não são apenas um nome de coluna.

questionAnswers(3)

yourAnswerToTheQuestion