Все, что я могу найти в Интернете о tidyeval, либо устарело, либо не соответствует последней версии tidyverse \ dplyr, либо не совсем применимо.
Пример тиббла:
df <- tribble(
~var1, ~var2, ~var3,
1, 2, 3,
4, 5, 6,
7, 8, 9
)
У меня есть небольшая функция, которую я написал:
fun <- function(data, select_var, arrange_var) {
select_var <- enquo(select_var)
arrange_var <- enquo(arrange_var)
data %>%
select(!!select_var) %>%
arrange(!!arrange_var)
}
Функция просто выбирает столбцы и затем упорядочивает их по строкам.
Когда я передаюаргументы функции, она прекрасно работает с одной переменной внутри c ():
fun(df,
c(var1,
var2)),
c(var2))
Однако, когда я пытаюсь передать ей две переменные, подобные этой:
fun(df,
c(var1,
var2)),
c(var1,
var2))
Я получаюследующая ошибка:
Error: incorrect size (282) at position 1, expecting : 141
Ближайшие ответы стека, которые мне удалось найти: range () не распознает параметр имени столбца и Передать векторимена переменных, чтобы организовать () в dplyr
, но оба из них, кажется, дают ответы, которые включали устаревшие решения (например, упорядочить _ ())
Некоторая большая информация здесь: обзор ресурсов по тендеру от Мары Аверик
и SeparatОбработка и обрезка беспорядочных данных в чистом виде Пола Олдхэма
и, конечно, я копался в: tidyeval
Однако, похоже, никто из них не решает эту проблемугалтель.Я исчерпал свои ресурсы после проведенного дня.Код работает найти в стандартном R-файле, просто он не может заставить его работать внутри функции, но уже готов сдаться, поэтому подумал, что я посмотрю, могли бы вы, замечательные люди, помочь.Заранее спасибо.