может помочь вам в этом:

ел бы понять, как передавать строки, представляющие выражения, в dplyr, чтобы переменные, упомянутые в строке, оценивались как выражения для столбцов в кадре данных.главная виньетка на эту тему охватывает прохождение в кавычках и вообще не обсуждает строки.

Понятно, что при представлении выражений кавычки безопаснее и понятнее строк, поэтому, конечно, мы должны избегать строк, когда вместо них можно использовать кавычки. Однако при работе с инструментами вне экосистемы R, такими как файлы конфигурации javascript или YAML, часто приходится работать со строками, а не с кавычками.

Например, скажем, я хочу функцию, которая выполняет групповое подсчет, используя выражения, переданные пользователем / вызывающим абонентом. Как и ожидалось, следующий код не работает, так как dplyr использует нестандартную оценку для интерпретации аргументовgroup_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

В dplyr 0.5 мы будем использовать стандартную оценку, такую ​​какgroup_by_(.dots = groups), чтобы справиться с этой ситуацией. Теперь, когда глаголы подчеркивания устарели, как мы должны делать такие вещи в dplyr 0.7?

В особом случае выражений, которые являются просто именами столбцов, мы можем использовать решения дляэтот вопрос, но они не работают для более сложных выражений, таких как2 * cyl это не просто имя столбца.

Ответы на вопрос(3)

Ваш ответ на вопрос