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]]