19

而不是像lm(bp~height+age, data=mydata)我想按数字指定列,而不是名称。

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

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

4

1 回答 1

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

而不是c(2, 3)你可以使用你想要的索引数量(不需要 for 循环)。

于 2011-10-12T15:59:12.550 回答