有没有简单的方法在R中创建公式列表

有没有简单的方法在R中创建公式列表,r,list,regression,formula,R,List,Regression,Formula,这里我想创建一个简单线性回归、二阶和三阶多项式模型的公式列表。我就是这么做的。有几个变量可以,但我的数据有很多变量。那么,我怎样才能避免用另一种方法来做同样的事情呢 ind1.lm <- lm(dep ~ ind1, data = df) ind1.qd <- lm(dep ~ poly(ind1, 2, raw = TRUE), data = df) ind1.cb <- lm(dep ~ poly(ind1, 3, raw = TRUE), data = df) ind2

这里我想创建一个简单线性回归、二阶和三阶多项式模型的公式列表。我就是这么做的。有几个变量可以,但我的数据有很多变量。那么,我怎样才能避免用另一种方法来做同样的事情呢

ind1.lm <- lm(dep ~ ind1, data = df)
ind1.qd <- lm(dep ~ poly(ind1, 2, raw = TRUE), data = df)
ind1.cb <- lm(dep ~ poly(ind1, 3, raw = TRUE), data = df)

ind2.lm <- lm(dep ~ ind2, data = datAll)
ind2.qd <- lm(dep ~ poly(ind2, 2, raw = TRUE), data = df)
ind2.cb <- lm(dep ~ poly(ind2, 3, raw = TRUE), data = df)

ind3.lm <- lm(dep ~ ind3, data = df)
ind3.qd <- lm(dep ~ poly(ind3, 2, raw = TRUE), data = df)
ind3.cb <- lm(dep ~ poly(ind3, 3, raw = TRUE), data = df)

formula.list <- list(as.formula(ind1.lm), as.formula(ind1.qd), 
    as.formula(ind1.cb), as.formula(ind2.lm), as.formula(ind2.qd), 
    as.formula(ind2.cb), as.formula(ind3.lm), as.formula(ind3.qd), 
    as.formula(ind3.cb))

 formula.list

ind1.lm定义自变量和公式格式,从中我们可以得到公式字符串。由于
lm
接受字符串作为公式,因此我们可以在其上应用一个名为公式的
lm
对象列表

ind <- c("ind1", "ind2", "ind3")
fmt <- c("dep ~ %s", 
         "dep ~ poly(%s, 2, raw=TRUE)", 
         "dep ~ poly(%s, 3, raw=TRUE)")

fo.strings <- c(outer(fmt, ind, sprintf))

sapply(fo.strings, lm, data = df, simplify = FALSE)

这里创建的是模型,而不是公式
lm(dep~ind1,data=df)
如果要创建公式,请使用
paste
@akrun。非常感谢。这就是我不能对多项式模型使用paste()的问题。@G.Grothendieck。非常感谢你。这正是我所需要的。我想确定是否有可能绘制每个独立变量与dep变量的3个模型,以及它们的方程和R2,只是为了比较每个预测变量的模型结果?
fmt <- c("y1~ %s", 
         "y1~ poly(%s, 2, raw=TRUE)", 
         "y1 ~ poly(%s, 2, raw=TRUE)")
ind <- c("x1", "x2", "x3")
fo.strings <- c(outer(fmt, ind, sprintf))
sapply(fo.strings, lm, data = anscombe, simplify = FALSE)