Estimado Alejandro,

La primera parte puedes solucionarla usando listas:

# matrices nulas
matrices <- lapply(1:19, function(x) matrix(0, 32, 32))
names(matrices) <- paste0('mat', 1:19)
matrices

Para obtener la informacion de la 5a matriz, solo debes hacer

matrices[[5]]

Podrias por favor explicarnos un poco mas lo que intentas hacer en la 2a
parte de tu codigo y que comienza con "# Mediante"?

Saludos,
Jorge.-

2013/2/20 Alejandro Ayala <>

> Saludos, me encuentro realizando una simulación de una red de transporte
> (paradas, líneas de frecuencia, usuarios, etc), para lo cual necesito el
> almacenamiento de información de forma matricial.
>
> El sistema cuenta con un numero determinado de paradas (38 paradas), en
> donde cada parada representa una matriz la cual tiene asociada la llegada
> de pasajeros, el tiempo en el cual llegaron, el déstino y otros atributos
> más, mi pregunta es que si existe alguna paquete o forma de almacenar esta
> información a manera de una "super matriz", donde cada componente de una
> matriz simple representa una nueva matriz, algo similar a lo que en física
> se denomina tensor.
>
> Mi otra pregunta radica en como asignar valores mediante iteración a las
> componentes de una matriz de acuerdo al cumplimiento de ciertas
> condiciones, tengo el siguiente código
>
> for (i in 5:23)   # creación de 19 matrices nulas con subindices 5 6 7...23
> {
>   mat.i<-paste("mat",i,sep="")
>   assign(mat.i,matrix(0,32,32))
>   data.matrix(mat.i)
> }
>
> # Mediante
> for (i in 1:32){  # iterador para realizar operaciones sobre cada fila de
> la matriz deseada
>   isup.i<-paste("isup",i,sep="")
>   if ((sum(m_sup5[i,])==0) | (sum(m_sup6[i,])==0) | (sum(m_sup7[i,])==0)){
>   # hace referencia a matrices (m_sup5, m_sup6,....) donde algunas filas
> tienen componentes nulas (cero)
>     mat5[i,]=0
>     mat6[i,]=0
>     mat7[i,]=0}
>   else {
>
>
> mat5[i,]<-assign(isup.i,as.vector(m_sup5[i,]/sum(m_sup5[i,]),mode="numeric"))
>
>
> mat6[i,]<-assign(isup.i,as.vector(m_sup6[i,]/sum(m_sup6[i,]),mode="numeric"))
>
>
> mat7[i,]<-assign(isup.i,as.vector(m_sup7[i,]/sum(m_sup7[i,]),mode="numeric"))
>    }}
>
> El anterior codigo funciona con condiciones de hasta 3 matrices 5, 6 y 7 a
> partir de 8 me arroja un error. Como podría reemplazar este código mediante
> otro iterador que me reconozca el subíndice de la matriz que estoy
> trabajando y adicionalmente me realice la operación deseada sobre cada
> componente de la fila de la matriz trabajada en ese momento.
>
> Necesito un código similar a:
>
> for (j in 5:23){
> for (i in 1:32){
> isup.i<-paste("isup",i,sep="")
> if ((sum(m_supj[i,]==0)) # utilizando el subíndice "j" que reemplace a las
> matrices de 5 a 23
> else
> {
>
> matj[i,]<-assign(isup.i,as.vector(m_supj[i,]/sum(m_supj[i,]),mode="numeric"))
> }
> }}
>
> Los errores que me arroja son de tipo que no existe relación al objeto que
> se quiere almacenar, incoherencia en las dimensiones, la función assign()
> no asigna valores adecuados,etc, lo he intendado todo lo que se me a
> ocurrido sin ningun resultado favorable, algun comentario o ayuda??
>
> Muchas gracias por su respuesta
>
>         [[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]]

