使用列号而不是lm()中的名称

时间:2011-10-12 15:13:27

标签: r formula lm

而不是lm(bp~height+age, data=mydata)之类的东西,我想按编号指定列,而不是名称。

我试过了lm(mydata[[1]]~mydata[[2]]+mydata[[3]]),但问题在于,在拟合模型中,系数被命名为mydata[[2]]mydata[[3]]等,而我希望它们具有真正的列名。

也许这是一个没有你的蛋糕和吃它的情况,但如果专家可以建议这是否可能我会很感激

1 个答案:

答案 0 :(得分:27)

lm(
    as.formula(paste(colnames(mydata)[1], "~",
        paste(colnames(mydata)[c(2, 3)], collapse = "+"),
        sep = ""
    )),
    data=mydata
)

而不是c(2, 3)你可以使用你想要多少个索引(不需要for循环)。