Hi all,

Why subscripting a one column matrix drops one dimension?

> x<- matrix(rnorm(100), ncol=1)

> str(x)
num [1:100, 1] -0.413 -0.845 -1.625 -1.393  0.507 ...

> str(x[20:30,])
num [1:11] -0.315 -0.693 -0.771  0.448  0.204 ...

> str(x[20:30])
num [1:11] -0.315 -0.693 -0.771  0.448  0.204 ...


This breaks:

> cov(x)
         [,1]
[1,] 0.9600812

> cov(x[20:30])
Erreur dans cov(x[20:30]) : fournir 'x' et 'y' ou bien 'x' en matrice


And this behavior is braking function clustIndex (when used with unidimensional data),
from the package cclust, file Rindexes.R, lines 137-147:

   ttww <- function(x, clsize, cluster)
     {
       n <- sum(clsize)
       k <- length(clsize)
       w<-0
       tt <- cov(x)*n
       for (l in 1:k)
         w<- w+cov(x[cluster==l,])*clsize[l]
       zttw <- list(tt=tt, w=w)
       return(zttw)
     }

Any way around it?

Thank you.

Moacir Pedroso Jr.
Embrapa - Empresa Brasileira de Pesquisa Agropecuária
(on leave at INRA - Instutute National de la Recherche Agronomique)

______________________________________________
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.

Reply via email to