Есть ли способ передать формулы для lm из одного вектора и получить набор R2 в другом векторе (без использования цикла)? - PullRequest
0 голосов
/ 19 апреля 2019

Я хотел бы проверить R2 в lm для разных формул в одном и том же наборе данных.
Я не хочу использовать цикл, но передаю формулы из одного вектора и получаю набор R2 в другом векторе.

Я попытался с помощью приведенного ниже кода.

data(mtcars)
formulas <- paste("mpg~",colnames(mtcars[2:11]))
R_square <- summary(lm(data=mtcars,formulas))$r.squared

Я ожидал, что вектор R_square будет содержать столько же значений, сколько вектор формул, но он имеет только одно значение.
Он работает так, как будто он построил только одинмодель для первой формулы.

Есть ли способ это исправить?

1 Ответ

0 голосов
/ 20 апреля 2019

Возможно, вы ищете что-то вроде:

R_square <- sapply(formulas, 
                   function(x) summary(lm(x, data = mtcars))$r.squared)

> R_square
 mpg~ cyl mpg~ disp   mpg~ hp mpg~ drat   mpg~ wt mpg~ qsec   mpg~ vs 
0.7261800 0.7183433 0.6024373 0.4639952 0.7528328 0.1752963 0.4409477 
  mpg~ am mpg~ gear mpg~ carb 
0.3597989 0.2306734 0.3035184 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...