BLUP: возможно ли использовать sym
/ enquo
для прохождения столбца диапазоны до dplyr::select
?
Рассмотрим следующий столбец со столбцами от A до E:
library(tibble)
library(dplyr)
set.seed(4)
d = as_tibble(setNames(as.list(rnorm(5)), LETTERS[1:5]))
d
## # A tibble: 1 x 5
## A B C D E
## <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 0.217 -0.542 0.891 0.596 1.64
Я могу выбрать диапазон столбцов, используя оператор столбца :
, например,
select(d, B:D)
## # A tibble: 1 x 3
## B C D
## <dbl> <dbl> <dbl>
## 1 -0.542 0.891 0.596
Я даже могу передать этот диапазон в виде фразы:
cols = quo(B:D)
select(d, !!cols)
# same result as above
Но я не могу передать его как символ:
colsym = sym("B:D")
select(d, !!enquo(colsym))
## Error in .f(.x[[i]], ...) : object 'A:C' not found
Это проблематично, когда используются выборки диапазона столбца, например, в пакете R.
В моем реальном примере,Я выбираю несколько диапазонов по 20-40 столбцов, поэтому я бы хотел использовать оператор :
вместо записи нескольких векторов по 20-40 элементов и enquos
(что, я полагаю, будет работать, но яеще не проверял).