Как создать уравнение регрессии из набора данных в R? - PullRequest
1 голос
/ 08 октября 2019

Я импортировал набор данных в переменную с именем "d" и хочу из нее сгенерировать линейную функцию:

d <- read.table("file_url")

Я пытался

lm(d[1] ~ d[2])

ОднакоФункция lm не ожидает списки. Как правильно это сделать?

Кстати, файл представляет собой простой текстовый файл, состоящий из двух столбцов чисел. Я хочу, чтобы второй столбец был независимой переменной, а первый - зависимым.

Ответы [ 2 ]

2 голосов
/ 08 октября 2019

Вот как вы можете добиться этого, используя базовую технику R:

lm(as.formula(paste0(names(d)[2], "~",names(d)[1])), data = d)

Из ссылки lm:

формула объекткласс "формула" (или та, которая может быть приведена к этому классу): символическое описание модели, которая будет установлена. Детали спецификации модели приведены в разделе «Детали». ...

Модели для lm указаны символически. Типичная модель имеет форму ответа ~ термин

Итак, вам нужно создать строку модели в соответствии со спецификацией и преобразовать ее в формулу.

1 голос
/ 08 октября 2019

Мы можем использовать имена для создания регрессии

lm(reformulate(names(d)[2], names(d)[1]), data = d)

Воспроизводимый пример:

lm(reformulate(names(mtcars)[2], names(mtcars)[1]), data = mtcars)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...