从 lm 拟合中提取并执行公式

extract and execute formula from `lm` fit

这是一个简单的测试代码:

> x=runif(10)
> y=runif(10)
> tt=paste0("y~", "x")
> fitt=lm(as.formula(tt))
> fitt$call[[2]]
as.formula(tt)

如何使最后一个命令的输出语言对象成为可执行文件,使其成为 return y~x 公式?在 Mathematica 中,它是 ToExpression 命令。

我可以想到两个选项:

formula(fitt$terms) # Option 1
eval(fitt$call[[2]]) # Option 2