Hola, Estoy haciendo un loop en el cual como resultado de cada vuelta obtengo una matriz. Lo que quiero es guardar cada matriz en un objeto diferente (ej: matriz1, matriz2,..matrizN). En fin, si el loop tiene 5 vueltas yo quisiera obtener 5 objetos distintos. Mi problema es asignar al resultado del loop un nombre distinto en cada vuelta. Acá abajo mando un ejemplo sencillo (sin matrices) de lo he intentado sin resultados favorables: for (i in 1:5) { XX<-1+i as.name(paste("matriz",i,sep=""))<-XX } Si alguien sabe como hacerlo le agradezco Saludos Federico [[alternative HTML version deleted]]
Federico, En casos como este lo mejor es usar una lista: # construccion set.seed(123) XX <- vector("list", length = 10) for(i in 1:10) XX[[i]] <- rnorm(i) names(XX) <- paste(''matriz'', 1:length(XX), sep = "_") XX # 5a matriz XX$matriz_5 # mas compacto set.seed(123) XX2 <- lapply(1:10, function(i) rnorm(i) ) names(XX2) <- paste(''matriz'', 1:length(XX2), sep = "_") XX2 # 5a matriz XX2$matriz_5 # son iguales? all.equal(XX, XX2) Saludos, Jorge.- 2012/5/18 Federico Cortés <>> Hola, > > > > Estoy haciendo un loop en el cual como resultado de cada vuelta obtengo > una matriz. Lo que quiero es guardar cada matriz en un objeto diferente > (ej: matriz1, matriz2,..matrizN). En fin, si el loop tiene 5 vueltas yo > quisiera obtener 5 objetos distintos. > > > > Mi problema es asignar al resultado del loop un nombre distinto en cada > vuelta. > > > > Acá abajo mando un ejemplo sencillo (sin matrices) de lo he intentado sin > resultados favorables: > > > > for (i in 1:5) { XX<-1+i > > as.name(paste("matriz",i,sep=""))<-XX } > > > > Si alguien sabe como hacerlo le agradezco > > > > Saludos > > > > Federico > > > > [[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]]
Hola, Con el esquema que planteabas, esta es otra forma, for (i in 1:5) { XX<-1+i foo<-paste("mat_", i, "<-XX", sep="") eval(parse(text=foo)) } Saludos, Carlos Ortega www.qualityexcellence.es El 18 de mayo de 2012 14:36, Federico Cortés <fcortes@inidep.edu.ar>escribió:> Hola, > > > > Estoy haciendo un loop en el cual como resultado de cada vuelta obtengo > una matriz. Lo que quiero es guardar cada matriz en un objeto diferente > (ej: matriz1, matriz2,..matrizN). En fin, si el loop tiene 5 vueltas yo > quisiera obtener 5 objetos distintos. > > > > Mi problema es asignar al resultado del loop un nombre distinto en cada > vuelta. > > > > Acá abajo mando un ejemplo sencillo (sin matrices) de lo he intentado sin > resultados favorables: > > > > for (i in 1:5) { XX<-1+i > > as.name(paste("matriz",i,sep=""))<-XX } > > > > Si alguien sabe como hacerlo le agradezco > > > > Saludos > > > > Federico > > > > [[alternative HTML version deleted]] > > > _______________________________________________ > R-help-es mailing list > R-help-es@r-project.org > https://stat.ethz.ch/mailman/listinfo/r-help-es > >-- Saludos, Carlos Ortega www.qualityexcellence.es [[alternative HTML version deleted]]