Нестандартные оценочные и символьные векторы
Представьте, что у меня есть набор данных следующим образом
d <- data.frame(a = 1:10, b = letters[1:10], c = sample(10))
Представьте, что у меня также есть символьный вектор, содержащий имена переменных
v <- c("a", "b")
С помощью dplyr
Я хотел бы использовать v
в select
переменные a
& b
,
Это не будет работать,
d %>%
select(v)
Это потому что dplyr
Пакеты используют нестандартную оценку и ожидают передачи фактических имен переменных, а не символов.
2 ответа
Решение
Для стандартной оценки вы захотите использовать функции с подчеркиванием после их имени. В этом случае это select_()
, И нам также нужно будет использовать .dots
аргумент для вставки вашего вектора в вызов.
d %>% select_(.dots = v)
Увидеть help(select)
а также vignette("nse")
для большего.