!!!
обычно используется для оценки списка выражений.
library(dplyr)
library(rlang)
VC_preds <- c('mpg', 'cyl')
mtcars %>% select(!!!VC_preds) %>% head
# mpg Cyl
#Mazda RX4 21.0 6
#Mazda RX4 Wag 21.0 6
#Datsun 710 22.8 4
#Hornet 4 Drive 21.4 6
#Hornet Sportabout 18.7 8
#Valiant 18.1 6
Если VC_preds
является вектором, как в вашем примере, !!
также должно работать.
mtcars %>% select(!!VC_preds) %>% head
Страница справки ?"!!!"
дает лучший пример, чтобы понять разницу.
vars <- syms(c("height", "mass"))
vars
#[[1]]
#height
#[[2]]
#mass
starwars %>% select(!!!vars)
# A tibble: 87 x 2
# height mass
# <int> <dbl>
# 1 172 77
# 2 167 75
# 3 96 32
# 4 202 136
# 5 150 49
# 6 178 120
# 7 165 75
# 8 97 32
# 9 183 84
#10 182 77
# … with 77 more rows