当公式由字符串给出时如何运行回归?
How to run regression when formula is given by a string?
让我们考虑以下数据:
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))
但是它不起作用。错误与变量长度的变化有关。 (似乎它仍然将 form 视为长度为 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
让我们考虑以下数据:
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))
但是它不起作用。错误与变量长度的变化有关。 (似乎它仍然将 form 视为长度为 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