El 25/06/2018 a las 11:23, Manuel Mendoza escribió:
Gracias Carlos, eso lo sé. El problema, probablemente una chorrada, es que para cambiarle el nombre a las variables (de acuerdo a un patrón, si, que incluye el nº de la iteración), debo indicar el nombre de la df, pero éste no es siempre el mismo. Puedo darle un nombre fijo a la df, ponerle el nombre a las variables, y al final del loop cambiarle el nombre a la df, pero tampoco sé cómo ponerle un nombre nuevo que incluye paste + el nº de iteración de los dos loops anidados. Sé como crear ese nombre, con paste, pero no cómo ponérselo. Al decirlo así parece una tontería, y a lo mejor lo es, pero me tiré un rato intentándolo y no pude. Por eso acudí a vosotros.

¿Con assign(), como sugería Jesús?

Saludos,

Marcelino







Manuel


Quoting Carlos Ortega <c...@qualityexcellence.es>:

Hola,

En cada iteración de tu bucle, puedes:

   - Cambiar la matriz a data.frame.
   - Nombrar las columnas incluyendo si quieres el número de la iteración
   del bucle (tu "i").
      - Esto lo puedes hacer utiizando la función "paste()".
      - No sé si los nombres de las variables, en cada iteración han de
      seguir algún patrón.


Saludos,
Carlos Ortega
www.qualityexcellence.es

El 22 de junio de 2018, 19:53, Manuel Mendoza <mmend...@mncn.csic.es>
escribió:


Funciona, me crea una matriz en cada iteración, con un nombre que incluye el nº de la iteración. Me surge ahora el problema de que, dentro del mismo bucle la quiero convertir en df y ponerle nombre a las columnas, y como el nombre de la matriz es distinto cada vez, no sé cómo hacerlo. Supongo que
se hará todo al crearla, pero no sé cómo.

Un problema adicional es que las variables (columnas) también han de
llevar la "i" incluida en el nombre, porque al final se fusionan todas las
dfs y no se puede repetir el nombre de las variables.

Gracias una vez más.




Quoting Jesús Para Fernández <j.para.fernan...@hotmail.com>:

Con assing y un paste0

Mete dentro del bucle esto

for(i in 1:7){
assign(paste0('matriz',i),matrix(0,ncol=5,nrow=3))

}

Con eso generarias 7 matrices de 5x3, llamadas matriz1, matriz2,...

Obtener Outlook para Android<https://aka.ms/ghei36>

________________________________
From: R-help-es <r-help-es-boun...@r-project.org> on behalf of Manuel
Mendoza <mmend...@mncn.csic.es>
Sent: Friday, June 22, 2018 10:15:55 AM
To: r-help-es@r-project.org
Subject: [R-es] loop con matriz que cambia de nombre


Buenos días. Quiero hacer un for (j), anidado en otro for (i). En el
2º for, en cada iteración ha de crear una matriz vacía: mat <-
matrix(nrow=nrow(data),ncol=19) pero llamándola de forma distinta cada
vez. El nombre ha de ser: paste("D",i,colnames(Data[j]),sep=""). Llevo
un rato haciendo pruebas pero no me sale. A ver si alguien pudiera
ayudarme,
gracias,
Manuel



























.
--
Dr Manuel Mendoza
Department of Biogeography and Global Change
National Museum of Natural History (MNCN)
Spanish Scientific Council (CSIC)
C/ Serrano 115bis, 28006 MADRID
Spain

_______________________________________________
R-help-es mailing list
R-help-es@r-project.org
https://stat.ethz.ch/mailman/listinfo/r-help-es



--
Dr Manuel Mendoza
Department of Biogeography and Global Change
National Museum of Natural History (MNCN)
Spanish Scientific Council (CSIC)
C/ Serrano 115bis, 28006 MADRID
Spain

_______________________________________________
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



--
Marcelino de la Cruz Rot
Depto. de Biología y Geología
Física y Química Inorgánica
Universidad Rey Juan Carlos
Móstoles España

_______________________________________________
R-help-es mailing list
R-help-es@r-project.org
https://stat.ethz.ch/mailman/listinfo/r-help-es

Responder a