lm(y~x*g) игнорируя одно значение для g

Я пытаюсь использовать R в первый раз.

В этом случае, y это потребление кислорода, x время, а g - состояние, обозначенное не более чем тремя буквами (NYF, IR, F, M или NF). Он будет запускать регрессии для каждого статуса, кроме F.

[Примечание: я также пытался выполнить это с несколькими регрессиями, используя функцию подмножества. Когда я использую

lm(O2~time,subset(data,Status=="NYF"))

на самом деле он не придерживается подмножества и дает регрессию для всего набора данных независимо от того, в какой статус я вхожу.

Как получить несколько простых линейных регрессий из одного набора данных на основе кодов в status столбец?

2 ответа

Лм (у ~ х, подмножество (дд, г =='NYF'))

подходящий синтаксис, чтобы соответствовать строке для одного статуса (хотя другие дают вам варианты, которые будут работать). Я бы проверил, чтобы ваш фрейм данных действительно назывался "data", а ваша переменная состояния - "Status".

Ваш вопрос не ясен. Предположим, у вас есть фрейм данных, ddс тремя столбцами: y, x, g, Переменные y а также x являются числовыми и g принимает значения NYF, IR, F, M, или же NF, Чтобы выполнить простую линейную регрессию для определенного статуса, тогда:

lm(y ~ x, data=dd[dd$g=="NYF",])
#Or
lm(y ~ x, data=dd[dd$g=="IR",])

Чтобы выполнить множественную линейную регрессию, попробуйте

lm(y ~ x + g, data=dd)

где наличие или отсутствие фактора указывается двоичной переменной.

Другие вопросы по тегам