Lo siento, la ultima parte deberia haber sido:

# removiendo los nombres de X
# y ejecutando el programa de nuevo
colnames(X) <- rownames(X) <- NULL
res <- dist.chi(X, FALSE)   # aqui estaba TRUE  :)
res

--JIV


2010/5/6 Jorge Ivan Velez <>

> Buenas noches Luis Alberto,
>
> Cual es la diferencia entre  d.chiCol y dchi.Col en el for para j?
>
> He aqui una nueva version de tu programa:
>
> # calcula la distancia chi^2 para una matrix A
> #  -- nombres es un argumento logico que controla si A tiene
> #     nombres en las columnas.  Por defecto es TRUE
> dist.chi <- function(A, nombres = TRUE){
>  m <- dim(A)[2]
> n <- dim(A)[1]
> B <- prop.table(A, 2)
> C <- prop.table(A)
> pesos <- apply(C,1,sum)
> res <- matrix(NA, m, m)
>  for (i in 1:m) for(j in 1:m){
>  if(i == j) res[i, j] <- 0
> else{
> x <- (B[,i]-B[,j])^2
>  val <- sqrt(sum(x/pesos))
> res[i, j] <- val
> }
>  }
>     if(nombres) colnames(res) <- rownames(res) <- colnames(A)
> res
> }
>
> # ---------
> #  Ejemplo
> # ---------
> # datos
> set.seed(123)
> X <- matrix(rpois(100, 10), ncol = 10)
> colnames(X) <- paste('x', 1:10, sep = "")
> X
>
> # resultado
> res <- dist.chi(X)
> res
>
> # removiendo los nombres de X
> # y ejecutando el programa de nuevo
> colnames(X) <- rownames(X) <- NULL
> res <- dist.chi(X)
> res
>
> Saludos,
> Jorge Ivan Velez
>
>
> On Thu, May 6, 2010 at 6:56 PM, Luis Alberto Lopez Gonzalez <> wrote:
>
>>  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)
>> for (i in 1:m)
>> {
>>  for(j in 1:m)
>>  {
>>  if(i==j)
>>      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.
>>
>>
>>  --
>> Luis Alberto López González
>>
>>        [[alternative HTML version deleted]]
>>
>>
>> _______________________________________________
>> R-help-es mailing list
>> R-help-es@r-project.org
>> https://stat.ethz.ch/mailman/listinfo/r-help-es
>>
>>
>

	[[alternative HTML version deleted]]

