> -----Original Message----- > From: r-help-boun...@r-project.org > [mailto:r-help-boun...@r-project.org] On Behalf Of Stephan Kolassa > Sent: Tuesday, August 17, 2010 5:25 AM > To: R-help@r-project.org > Subject: [R] predict.lm, matrix in formula and newdata > > Dear all, > > I am stumped at what should be a painfully easy task: > predicting from an lm object. A toy example would be this: > > XX <- matrix(runif(8),ncol=2) > yy <- runif(4) > model <- lm(yy~XX) > XX.pred <- data.frame(matrix(runif(6),ncol=2)) > colnames(XX.pred) <- c("XX1","XX2") > predict(model,newdata=XX.pred) > > I would have expected the last line to give me the > predictions from the model based on the new data given in > XX.pred... but all I get are in-sample fits along with a > warning "'newdata' had 3 rows but variable(s) found have 4 > rows". Why would predict.lm worry about the number of rows in > the model matrix?
Note that the formula in the model is y~XX so predict() is going to look for a variable called 'XX', not 'XX1' and 'XX2'. XX.pred doesn't have a variable called XX so predict() uses the one in the global environment. Put an XX of the appropriate type in your newdata argument and it will work. E.g., > XX.predMatrix <- data.frame(XX=I(matrix(runif(6),ncol=2))) > predict(model,newdata=XX.predMatrix) 1 2 3 0.8864115 0.3825788 0.4744272 > # no warnings Bill Dunlap Spotfire, TIBCO Software wdunlap tibco.com > Unfortunately, ?predict.lm does not seem to be helpful, and > neither RSiteSearch nor rseek.org have been useful. I'm sure > that I am making an elementary error somewhere (am I > misunderstanding the lm(yy~XX) part?) and would appreciate a > gentle nudge in the right direction. > > Thank you, > Stephan > > -- > GMX DSL SOMMER-SPECIAL: Surf & Phone Flat 16.000 für nur > 19,99 ¿/mtl.!* > > ______________________________________________ > R-help@r-project.org mailing list > 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. > ______________________________________________ R-help@r-project.org mailing list 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.