¿Cuál es la diferencia entre lm (delito $ R ~ delito $ OBP) y lm (R ~ OBP)?

Estoy tratando de usar R para crear un modelo lineal y lo uso para predecir algunos valores. El tema son las estadísticas del béisbol. Si hago esto:

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

Recibo el error: Mensaje de advertencia: 'newdata' tenía 1 fila pero las variables encontradas tienen 20 filas.

Sin embargo, si hago esto:

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

Funciona como se esperaba y obtengo un resultado. ¿Cuál es la diferencia entre los dos? Si solo imprimo OBP y ofende $ OBP, se ven iguales.

Respuestas a la pregunta(2)

Su respuesta a la pregunta