В чем разница между lm (нарушение $ R ~ нарушение $ OBP) и lm (R ~ OBP)?

Я пытаюсь использовать R для создания линейной модели и использовать ее для прогнозирования некоторых значений. Предметом является бейсбольная статистика. Если я сделаю это:

obp <- lm(offense$R ~ offense$OBP)
predict(obp, newdata=data.frame(OBP=0.5), interval="predict")

Я получаю сообщение об ошибке: Предупреждение: «newdata» имеет 1 строку, а найденные переменные имеют 20 строк.

Однако, если я сделаю это:

attach(offense)
obp <- lm(R ~ OBP)
predict(obp, newdata=data.frame(OBP=0.5), interval="predict")

Это работает, как ожидалось, и я получаю один результат. Какая разница между двумя? Если я просто распечатаю OBP и обижаю $ OBP, они выглядят одинаково.

Ответы на вопрос(2)

Ваш ответ на вопрос