Аргумент линейной регрессии "x" отсутствует без значения по умолчанию - PullRequest
0 голосов
/ 26 февраля 2020

Я новичок в кодировании на R, и у меня проблемы с моей функцией lm.

f <- lm(comm_YLL ~ region, data = hw1) # this saves properly
plot(xlab = 'years of life lost', ylab = 'reagression') # this returns the error below

abline(f) # haven't gotten this far

Ошибка в xy.coords (x, y, xlabel, ylabel, log): отсутствует аргумент "x" без значения по умолчанию

У меня есть Понятия не имею, что это значит, и я просто в замешательстве, как работает функция lm. в этом случае comm_yll - это годы жизни, потерянные для чего бы то ни было, а регион - это регион, в котором находится страна. hw1 - это данные, которые я перетаскиваю из

Ответы [ 2 ]

1 голос
/ 26 февраля 2020

Как уже упоминалось в комментариях без воспроизводимого примера, трудно понять истинную проблему здесь.
По некоторым предположениям, ваша функция графика не вызывает никаких данных. Вам нужно указать вектор для переменной 'x' в функции. Попробуйте

plot(x = hw1$comm_YLL, y = hw1$region, xlab = 'years of life lost', ylab = 'reagression') 

Также обратите внимание, что ваш lm связывает переменную ответа comm_YLL как переменную оси y на графике, а предиктор region - переменную оси x. Так что, возможно, вы хотите.

plot(x = hw1$region, y = hw1$comm_YLL, xlab = 'reagression', ylab = 'years of life lost')
abline(f)

Или

plot(region ~ comm_YLL, ,data = hw1, xlab = 'reagression', ylab = 'years of life lost')
abline(f)
0 голосов
/ 26 февраля 2020

Данные из вашего комментария:

hw1 <- data.frame(comm_YLL = c(17, 50, 84, 21, 12, 18),
                  region = c(5, 1, 1, 2, 4, 2))

Предположим, что

  • Переменная предиктора (X): регион
  • Переменная ответа ( Y): comm_YLL

Простая линейная модель

mod <- lm(comm_YLL ~ region, data = hw1)

Участок

На самом деле plot - это общая c функция, которая вызывает другие функции в соответствии с тем, что вы вводите. Есть 2 способа построить X, Y и линию регрессии.

1. Введите formula объект

Таким образом, plot вызовите plot.formula, чтобы выполнить печать, и вам нужно установить data = hw1, чтобы сообщить этой функции region и comm_YLL приходят от hw1.

plot(comm_YLL ~ region, data = hw1)
abline(mod, col = 2)

2. Вводите 2 вектора отдельно

plot вызов plot.default, и вам нужно использовать $ символ, извлекающий значения в hw1.

plot(hw1$region, hw1$comm_YLL)
abline(mod, col = 2)

Если вам нужна линия регрессии, установите type = "n" в plot.

plot(comm_YLL ~ region, hw1, type = "n")
abline(mod, col = 2)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...