r-当公式由字符串给出时,如何运行回归



让我们考虑以下数据:

set.seed(42)
y <- runif(100)
df <- data.frame("Exp" = rexp(100), "Norm" = rnorm(100), "Wei" = rweibull(100, 1))

我想执行线性回归,但当公式是字符串时,格式为:

form <- "Exp + Norm + Wei"

我想我只需要使用:

as.formula(lm(y~form, data = df))

然而,它不起作用。误差是关于变量长度的变化。(看起来它仍然将形式视为长度为1的字符串向量,但我不知道为什么(。

你知道我怎么做吗?

我们可以使用paste来构造公式,并直接在lm上使用

lm(paste('y ~', form), data = df)

-输出

#Call:
#lm(formula = paste("y ~", form), data = df)
#Coefficients:
#(Intercept)          Exp         Norm          Wei  
#   0.495861     0.026988     0.046689     0.003612  

最新更新