Я не понимаю, почему следующее не работает. Я пытаюсь использовать имя фрейма данных / таблицы в качестве столбца в фрейме данных нескольких моделей, но продолжаю сталкиваться со следующей ошибкой. Вот пример:
library(tidyverse)
library(rlang)
set.seed(666)
df1 <- tibble(
x = 1:10 + rnorm(10),
y = seq(20, 38, by=2) + rnorm(10),
z = 2*x + 3*y
)
df2 <- tibble(
x = 1:10 + rnorm(10),
y = seq(20, 38, by=2) + rnorm(10),
z = 4*x + 5*y
)
results <- tibble(dataset = c('df1','df2'))
Обратите внимание, что следующие все работают:
lm(z ~ x + y, data=df1)
lm(z ~ x + y, data=df2)
lm(z ~ x + y, data=eval(sym('df1')))
Но когда я попробую следующее:
results <- results %>% mutate(model = lm(z ~ x + y, data = eval(sym(dataset))))
Я получаю ошибку
Error in mutate_impl(.data, dots) :
Evaluation error: Only strings can be converted to symbols.
Может кто-нибудь выяснить, как заставить это работать?