On Apr 29, 2015, at 7:21 AM, Martin Spindler wrote: > Dear all, > > the following example somehow uses the "old data" (X) to make the > predictions, but not the new data Xnew as intended. > > y <- rnorm(100) > X <- matrix(rnorm(100*10), ncol=10) > lm <- lm(y~X) > Xnew <- matrix(rnorm(100*20), ncol=10) > ynew <- predict(lm, newdata=as.data.frame(Xnew)) #prediction in not made for > Xnew > > How can I foce predict.lm to use use the new data?
If you look at what you are passing to `predict`, it should be apparent why it does not find a proper 'newdata' argument: str( as.data.frame(Xnew) ) 'data.frame': 200 obs. of 10 variables: $ V1 : num 1.2 -0.319 -0.175 -1.009 0.197 ... $ V2 : num 1.529 -0.107 -1.013 -0.869 1.166 ... $ V3 : num -0.417 -0.34 -0.101 -0.018 -2.237 ... $ V4 : num -2.2274 -1.15 0.0252 1.014 1.9455 ... $ V5 : num -0.207 1.628 -0.24 -0.194 -0.722 ... $ V6 : num -1.176 0.935 -0.862 -1.152 0.815 ... $ V7 : num 0.967 -1.464 -1.554 0.065 0.205 ... $ V8 : num -0.282 1.699 -0.267 -0.8 -0.643 ... $ V9 : num -0.34833 -0.24907 -0.84185 -0.0518 -0.00216 ... $ V10: num -0.37 -0.227 -2.949 0.899 -0.586 ... You need the newdata argument to be named exactly as lm would have coerced into being when given a single X predictor that was a matrix. Try instead: ynew <- predict(lm, newdata=list(X=Xnew) ) -- David Winsemius Alameda, CA, USA ______________________________________________ R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.