[R-es] Lazos (bucles) anidados

Carlos J. Gil Bellosta cgb en datanalytics.com
Lun Oct 28 22:27:52 CET 2013


Hola, ¿qué tal?

Te interesa echarle un vistazo a la funcion cumsum. También abreviaría
tu código meter tus matrices matrix_xx en una lista (sí, una lista de
matrices) y utilizar índices para acceder a ellas (o, mejor aún, la
función lapply).

Un saludo,

Carlos J. Gil Bellosta
http://www.datanalytics.com

El día 28 de octubre de 2013 21:47, Alejandro Ayala
<alejo.ayalab en gmail.com> escribió:
> Estimados me pueden ayudar con el siguiente problema, necesito reducir
> lineas de programación mediante un bucle, las instrucciones que estoy
> realizando son:
>
> matriz_lambda<-matrix(NA,32,19)
> m_lambda_b<-matrix(NA,32,19)
>
> for(i in 1:32){
>   if(i<32){
>     matriz_lambda[i,1]<-sum(matriz5[i,c((i+1):32)])
>     matriz_lambda[i,2]<-sum(matriz6[i,c((i+1):32)])
>     matriz_lambda[i,3]<-sum(matriz7[i,c((i+1):32)])
>     matriz_lambda[i,4]<-sum(matriz8[i,c((i+1):32)])
>     matriz_lambda[i,5]<-sum(matriz9[i,c((i+1):32)])
>     matriz_lambda[i,6]<-sum(matriz10[i,c((i+1):32)])
>     matriz_lambda[i,7]<-sum(matriz11[i,c((i+1):32)])
>     matriz_lambda[i,8]<-sum(matriz12[i,c((i+1):32)])
>     matriz_lambda[i,9]<-sum(matriz13[i,c((i+1):32)])
>     matriz_lambda[i,10]<-sum(matriz14[i,c((i+1):32)])
>     matriz_lambda[i,11]<-sum(matriz15[i,c((i+1):32)])
>     matriz_lambda[i,12]<-sum(matriz16[i,c((i+1):32)])
>     matriz_lambda[i,13]<-sum(matriz17[i,c((i+1):32)])
>     matriz_lambda[i,14]<-sum(matriz18[i,c((i+1):32)])
>     matriz_lambda[i,15]<-sum(matriz19[i,c((i+1):32)])
>     matriz_lambda[i,16]<-sum(matriz20[i,c((i+1):32)])
>     matriz_lambda[i,17]<-sum(matriz21[i,c((i+1):32)])
>     matriz_lambda[i,18]<-sum(matriz22[i,c((i+1):32)])
>     matriz_lambda[i,19]<-sum(matriz23[i,c((i+1):32)])
>   }
>   else {
>     matriz_lambda[i,1]<-matriz5[32,32]
>     matriz_lambda[i,2]<-matriz6[32,32]
>     matriz_lambda[i,3]<-matriz7[32,32]
>     matriz_lambda[i,4]<-matriz8[32,32]
>     matriz_lambda[i,5]<-matriz9[32,32]
>     matriz_lambda[i,6]<-matriz10[32,32]
>     matriz_lambda[i,7]<-matriz11[32,32]
>     matriz_lambda[i,8]<-matriz12[32,32]
>     matriz_lambda[i,9]<-matriz13[32,32]
>     matriz_lambda[i,10]<-matriz14[32,32]
>     matriz_lambda[i,11]<-matriz15[32,32]
>     matriz_lambda[i,12]<-matriz16[32,32]
>     matriz_lambda[i,13]<-matriz17[32,32]
>     matriz_lambda[i,14]<-matriz18[32,32]
>     matriz_lambda[i,15]<-matriz19[32,32]
>     matriz_lambda[i,16]<-matriz20[32,32]
>     matriz_lambda[i,17]<-matriz21[32,32]
>     matriz_lambda[i,18]<-matriz22[32,32]
>     matriz_lambda[i,19]<-matriz23[32,32]
>   }
> }
>
> donde matriz5, matriz6 son distintas entre si y son un total de 19 cuya
> dimension es 32x32 y la matriz resultante matriz_lambda es de dimensión
> 32x19
>
> El codigo que estoy generando es el siguiente:
>
> for(i in 1:32){
>   for(j in 1:19){
>
> matriz_lambda[i,j]<-assign(sum(paste0("matriz",j+4),get(paste0("matriz",j+4))[i,c((j+1):32)]))
>
>   }
> }
>
> Alguna idea o ayuda en este tema.
>
> Gracias
>
>         [[alternative HTML version deleted]]
>
>
> _______________________________________________
> R-help-es mailing list
> R-help-es en r-project.org
> https://stat.ethz.ch/mailman/listinfo/r-help-es
>



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