[Rd] pr[in]comp: predict single observation when data has colnames (PR#8324)

2005-11-18 Thread bhx5
To my knowledge, this has not been reported previously, and doesn't
seem to have been changed in R-devel or R-patched.

If M is a matrix with coloumn names, and

mod <- prcomp(M)  # or princomp

then predicting a single observation (row) with predict() gives the
error

Error in scale.default(newdata, object$center, object$scale) : 
length of 'center' must equal the number of columns of 'x'

This doesn't happen if M doesn't have coloumn names.

For instance:

> M <- matrix(rnorm(30), ncol = 3)
> mod <- prcomp(M[-1,])
> predict(mod, newdata = M[1,, drop = FALSE])
   PC1   PC2   PC3
[1,] -1.666191 -2.333012 -1.424587

> colnames(M) <- 1:3
> mod <- prcomp(M[-1,])
> predict(mod, newdata = M[1,, drop = FALSE])
Error in scale.default(newdata, object$center, object$scale) : 
length of 'center' must equal the number of columns of 'x'


I believe the problem is the line

newdata <- newdata[, nm]

in predict.prcomp (line 106 of prcomp.R) and predict.princomp (line 11
of princomp-add.R), which should probably be

newdata <- newdata[, nm, drop = FALSE]



Version:
 platform = x86_64-unknown-linux-gnu
 arch = x86_64
 os = linux-gnu
 system = x86_64, linux-gnu
 status = 
 major = 2
 minor = 2.0
 year = 2005
 month = 10
 day = 06
 svn rev = 35749
 language = R

Locale:
LC_CTYPE=no_NO.UTF-8;LC_NUMERIC=C;LC_TIME=no_NO.UTF-8;LC_COLLATE=no_NO.UTF-8;LC_MONETARY=no_NO.UTF-8;LC_MESSAGES=no_NO.UTF-8;LC_PAPER=C;LC_NAME=C;LC_ADDRESS=C;LC_TELEPHONE=C;LC_MEASUREMENT=C;LC_IDENTIFICATION=C

Search Path:
 .GlobalEnv, package:methods, package:stats, package:graphics, 
package:grDevices, package:utils, package:datasets, Autoloads, package:base

-- 
Bjørn-Helge Mevik

__
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel


[Rd] segfault in plot(x, y, col = aFactor) (PR#9221)

2006-09-12 Thread bhx5
After the following commands (issued just after starting R)

set.seed(1)
n <- 600
x <- rnorm(n)
y <- rnorm(n)
aFactor <- factor(rep(1:5, length = n))
plot(x, y, col = aFactor)

R prints

 *** caught segfault ***
address 0x10, cause 'memory not mapped'
Segmentation fault

and dies.

(Yes, I know that using a factor as `col' is wrong; I discovered this by a
mistake. :-)

Substituting "aFactor <- factor(rep(1:5, length = n))" with
"aFactor <- rep(1:5, length = n)" (obviously) works as expected.

When n is smaller, for instance 400, no seg.fault seems to happen.

I also tested this on R 2.3.1 (that's actually where I discovered it :-), and
the same thing happens there.



--please do not edit the information below--

Version:
 platform = x86_64-unknown-linux-gnu
 arch = x86_64
 os = linux-gnu
 system = x86_64, linux-gnu
 status = alpha
 major = 2
 minor = 4.0
 year = 2006
 month = 09
 day = 11
 svn rev = 39258
 language = R
 version.string = R version 2.4.0 alpha (2006-09-11 r39258)

Locale:
LC_CTYPE=no_NO.UTF-8;LC_NUMERIC=C;LC_TIME=no_NO.UTF-8;LC_COLLATE=no_NO.UTF-8;LC_MONETARY=no_NO.UTF-8;LC_MESSAGES=no_NO.UTF-8;LC_PAPER=no_NO.UTF-8;LC_NAME=C;LC_ADDRESS=C;LC_TELEPHONE=C;LC_MEASUREMENT=no_NO.UTF-8;LC_IDENTIFICATION=C

Search Path:
 .GlobalEnv, package:methods, package:stats, package:graphics, 
package:grDevices, package:utils, package:datasets, Autoloads, package:base

-- 
Bjørn-Helge Mevik

__
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel