Произошла ошибка, поскольку sym
работает только для одного элемента. Здесь нам нужно syms
(но это не маршрут для получения ожидаемого результата). $
с именем переменной будет оценивать его буквально, поэтому вместо этого используйте [[
Если нам нужен class
, тогда просто выполните
library(dplyr)
colstable %>%
rowwise %>%
mutate(colclass = class(mtcars[[column]]) )
# A tibble: 11 x 2
# Rowwise:
# column colclass
# <chr> <chr>
# 1 mpg numeric
# 2 cyl numeric
# 3 disp numeric
# 4 hp numeric
# 5 drat numeric
# 6 wt numeric
# 7 qsec numeric
# 8 vs numeric
# 9 am numeric
#10 gear numeric
#11 carb numeric
Или с map
library(purrr)
colstable %>%
mutate(colclass = map_chr(column ~ class(mtcars[[.x]])))
Или если нам нужно eval
использовать выражение
library(stringr)
colstable %>%
mutate(colclass = map_chr(rlang::parse_exprs(str_c("mtcars$", column, collapse=";")),
~ class(rlang::eval_tidy(.x))))
# A tibble: 11 x 2
# column colclass
# <chr> <chr>
# 1 mpg numeric
# 2 cyl numeric
# 3 disp numeric
# 4 hp numeric
# 5 drat numeric
# 6 wt numeric
# 7 qsec numeric
# 8 vs numeric
# 9 am numeric
#10 gear numeric
#11 carb numeric