[R] predict.lm removes rownames for a single row. Why?
Prof Brian Ripley
ripley at stats.ox.ac.uk
Sat Jan 5 07:37:48 CET 2008
This is an inconsistency in drop:
> x <- matrix(1:4, 4,1, dimnames=list(letters[1:4], NULL))
> x
[,1]
a 1
b 2
c 3
d 4
> drop(x)
a b c d
1 2 3 4
> drop(x[1,,drop=FALSE])
[1] 1
S does not do that, and I don't think R should, given its documentation.
(Note that x[1,] also drops names in R and not S.)
On Fri, 4 Jan 2008, Richard M. Heiberger wrote:
> predict.lm keeps row names when working from several rows in
> newdata, but always removes rowname from a single row.
> The rownames are removed by the line in predict.lm
> predictor <- drop(X[, piv, drop = FALSE] %*% beta[piv])
> What is the reason for that decision? I usually want to
> retain the row names.
>
> tmp <- data.frame(x=1:4, y=c(1,3,2,5))
> tmp.lm <- lm(y ~ x, data=tmp)
> tmp.new <- data.frame(x=5:6, y=8:7)
>
> predict(tmp.lm, newdata=tmp.new, interval="confidence") ##
> rownames
> predict(tmp.lm, newdata=tmp.new[1,,drop=FALSE], interval="confidence")## no
> rownames
>
> ______________________________________________
> R-help at 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.
>
--
Brian D. Ripley, ripley at stats.ox.ac.uk
Professor of Applied Statistics, http://www.stats.ox.ac.uk/~ripley/
University of Oxford, Tel: +44 1865 272861 (self)
1 South Parks Road, +44 1865 272866 (PA)
Oxford OX1 3TG, UK Fax: +44 1865 272595
More information about the R-help
mailing list