Estimados.

Su gentil ayuda con el siguiente problema:

Tengo un total de 19 matrices en archivos de texto de dimensión (32x32) ,
necesito que para cada fila de cada matriz se realice una operación
especifica: La división entre cada componente y la suma correspondiente a
la fila de la matriz en la que se este trabajando.

El codigo que he utilizado es el siguiente:

# creación de una matriz de dimensión 32x32 donde se va a almacenar los
datos de la operación requerida
for (i in 1:19)
{
  mat.i<-paste("mat",i,sep="")
  assign(mat.i,matrix(0,32,32))
  data.matrix(mat.i)
}

# asignación a la nueva matriz de la operación requerida
#para la matriz 1
for (i in 1:32){
  isup.i<-paste("isup",i,sep="")
  if (sum(matriz1[i,])==0)
    mat1[i,]=0
  else

mat1[i,]<-assign(isup.i,as.vector(matriz1[i,]/sum(matriz1[i,]),mode="numeric"))
    }}


# para la matriz 2
for (i in 1:32){
  isup.i<-paste("isup",i,sep="")
  if (sum(matriz2[i,])==0)
    mat2[i,]=0
  else

mat2[i,]<-assign(isup.i,as.vector(matriz2[i,]/sum(matriz2[i,]),mode="numeric"))
    }}

Esa operación tengo que extenderla a las 19 matrices, es decir tengo que
crear un iterador sobre otro iterador, he intentado varias cosas pero con
resultados negativos.

He intentado con este código pero al poner una cuarta condición el paquete
R me arroja el siguiente Error: tentativa de aplicar una no-función

for (i in 1:32){
  isup.i<-paste("isup",i,sep="")
  if ((sum(matriz1[i,])==0) | (sum(matriz2[i,])==0) |
(sum(matriz3[i,])==0)){
    mat1[i,]=0
    mat2[i,]=0
    mat3[i,]=0
}
  else {

mat1[i,]<-assign(isup.i,as.vector(matriz1[i,]/sum(matriz1[i,]),mode="numeric"))

mat2[i,]<-assign(isup.i,as.vector(matriz2[i,]/sum(matriz2[i,]),mode="numeric"))

mat3[i,]<-assign(isup.i,as.vector(matriz3[i,]/sum(matriz3[i,]),mode="numeric"))
   }}

De antemano muchisimas gracias por la ayuda

	[[alternative HTML version deleted]]

