[R] subscripting a one column matrix drops dimension
Pedroso MOACIR
moacir at supagro.inra.fr
Tue Oct 21 15:24:34 CEST 2008
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)
More information about the R-help
mailing list