I have a simple linear model:
mylm = lm(formula = prodRate~affinity, mydf)
where mydf is a dataframe which looks like:
pro
Thanks to the discussion with user20650 (see above), the bug was identified:
The mydf in mylm = lm(formula = prodRate~affinity, mydf) was created by adding an matrix-like column to the existed dataframe mydf as following:
mydf$affinity = matrix(somenumber)
i.e. the "affinity" column in mydf is made from a matrix and its structure remains as matrix. This matrix structure is NOT consistent with the "affinity" column in newdata=data.frame(affinity=seq(0,1,0.1)) in predict(mylm,newdata=...), which is a numeric vector.
solution1: fix mydf as following mydf <- data.frame(prodRate , affinity). i.e. make sure that the affinity column of mydf has a vector-like structure
solution2: keep the original mydf but enforce mydf$affinity as vector in the fomular: mylm <- lm(formula = prodRate ~ as.vector(affinity), mydf) so that the independent variable "affinity" in the linear model "mylm" has the vector-like structure instead of matrix-like structure, which will be consistent with the newdata=data.frame(affinity=seq(0,1,0.1)) in predict(mylm,newdata=...), which is a numeric vector.