Использование номеров столбцов без имен в lm()

Вместо чего-то вроде lm(bp~height+age, data=mydata) я хотел бы указать столбцы по номеру, а не по имени.

Я попробовал lm(mydata[[1]]~mydata[[2]]+mydata[[3]]), но проблема заключается в том, что в модели, которая была установлена, коэффициенты называются mydata[[2]], mydata[[3]] и т.д., тогда как я хотел бы, чтобы они имели имена реальных столбцов.

Возможно, это случай, когда у вас нет торта и есть, но если эксперты могут посоветовать, возможно ли это, я был бы благодарен

Ответы

Ответ 1

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

Вместо c(2, 3) вы можете использовать сколько индексов вы хотите (нет необходимости для цикла).