[R-es] matriz de distancias chi Cuadrado

Octavio Bruzzone ottavioaugusto en yahoo.com.ar
Vie Mayo 7 16:09:02 CEST 2010


> Hola a todos... saludos cordiales....
> Quiero hacer una función que me calcule la matriz de distancias chi
> cuadrado, pero obtengo este mensaje de error:
> 
> Error en d.chiCol[i, j] = 0 : objeto de tipo 'closure' no es subconjunto
> 
> 
> d.chiCol<- function(A)
> {
> m <- dim(A)[2]
> n <- dim(A)[1]
> B <- prop.table(A,2)
> C <- prop.table(A)
> pesos <- apply(C,1,sum)
> dchi.Col <- matrix(,m,m)

Ya alguien parece haberlo resuelto antes que lo lea, te hago una sugerencia 
(que tal vez no te sirva, pero va igual),  cuando haces un par de bucles sobre 
una matriz cuadrada puedes hacerlo mas rápido así:

en lugar de :
for (i in 1:m){
 for(j in 1:m) {
   if(i==j) ...

hacer:
for(i in 1:(m-1)){
  d.chiCol[i,i] = 0
  for(j in (i+1):m)
     dhci.Col[i,j] = ...
     dhci.Col[j,i] = ...
  }
}
dhci.Col[m,m]=...

de esa manera ganas mucho tiempo en matrices grandes (o en muchas iteraciones)

>       d.chiCol[i,j]=0
>     else
>       x <- (B[,i]-B[,j])^2
>       val <- x/pesos
>       dchi.Col[i,j]=sqrt(sum(val))
>   }
> }
> dchi.Col
> }
> Alguien me puede colaborar, gracias.
> 
__________________________________________________
Correo Yahoo!
Espacio para todos tus mensajes, antivirus y antispam ¡gratis!



Más información sobre la lista de distribución R-help-es