2016-10-02 2 views
0

У меня есть dataframe с 16 переменными. Когда я делаю множественной линейной регрессии я делаю следующее:Как добавить все переменные в свою вторую степень в lm()?

fit <- lm(y ~ .,data=data) 

Теперь я знаю, как добавить второй член степень одной из переменных:

fit2 <- lm(y ~ poly(x1,2) + .,data=data) 

Но теперь я не хочу напишите это для всех моих 16 переменных. Как я могу сделать это легко для всех моих переменных?

+0

Так как это ?: паста (unlist (lapply (COLNAMES (данные) [- 1], функции (x) {paste ('poly (', x, ', 2)')})), collapse = '+') – Ansjovis86

+0

Можно было бы ожидать, что для этого будет хорошая функция. Хорошо, это не так уж плохо. Спасибо! Тем не менее, если кто-нибудь знает лучший ответ, то plz post ... – Ansjovis86

+0

Ах да, и вы правы в этой пасте. Спасибо, что делает код намного чище. – Ansjovis86

ответ

1

Вступая первый переменный в данном нашем 'у', мы получим следующее:

as.formula(
    paste('y ~',paste('poly(',colnames(data[-1]),',2)',collapse = ' + ') 
) 
+1

или 'reformulate (paste0 ('poly (', colnames (data [-1]), '2)'), response =" y ")' –

Смежные вопросы