我很困惑为什么以下不起作用。我正在尝试将数据框/tibble 的名称用作多模型数据框中的列,但不断遇到以下错误。这是一个例子:
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.
有人可以弄清楚如何进行这项工作吗?