以 lm() 函数的形式自动创建具有变量名称的动态字符串,以适应 R [duplicate] 中的线性模型

automatically create a dynamic string with variable names in the form of lm() function to fit linear models in R [duplicate]

提问人:nopeva 提问时间:12/30/2012 最后编辑:Communitynopeva 更新时间:12/30/2012 访问量:1420

问:

这个问题在这里已经有答案了:
10年前关闭。

可能的重复:
具有动态变量数的公式

我正在拟合一个包含许多变量的线性模型,并希望按照 R 中的 lm() 函数的形式自动生成一个动态字符串(“Y ~ X1 + ... + Xn”)。这个想法是将字符串插入 lm() 公式中,这样就不必手动写下所有名称。

我还想设置响应变量的名称,以便识别它并包含在字符串的第一位(“ Y ~ ...”)

这可能吗?我正在使用“state.x77”数据集。假设我想使用“Life Exp”变量作为响应。

    state.x77                            
    str(state.x77)                       
    st = as.data.frame(state.x77)
n=ncol(st) 
r

评论


答:

2赞 user1600826 12/30/2012 #1
names(st) <- make.names(names(st))
y <- "Life.Exp"
x <- names(st)[!names(st) %in% y]
x
y
mymodel <- as.formula(paste(y, paste(x, collapse="+"), sep="~"))
lm(mymodel, data=st)

评论

0赞 nopeva 12/30/2012
我想第三行设置了除响应之外的所有名称,您能简要解释一下吗?