Re: [R-es] loop con matriz que cambia de nombre
Estimado Manuel Mendoza Entonces el problema es simple, primero cree una estructura para almacenar los datos mediante repeticiones, algún paste() en el medio, de tal forma que quede como usted desea, para esto comience de cero, no mire el código con errores para no confundirse, mire algún ejemplo como los que hay en http://www.datasciencemadesimple.com/repeat-and-replicate-function-in-r/ , cree el andamiaje, con algo muy simple como almacenar tablas de multiplicar en data.frames, luego reemplaza esa función por la función que busca los datos en la base de datos. Es la forma que yo tengo, aunque por ahí aparecen errores, por ejemplo ahora se me cae el código luego de procesar 10 horas, y me pregunto que pasó para que luego de miles de cosas bien aparezca algo que rompe el proceso, y bueno, es así, la importación de datos tiene esos problemas. Javier Rubén Marcuzzi El lun., 25 jun. 2018 a las 7:03, Marcelino de la Cruz Rot (< marcelino.delac...@urjc.es>) escribió: > 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 : > > > >> 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 > >> 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 : > >>> > >>> 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 on behalf of Manuel > >>>> Mendoza > >>>> 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 s
Re: [R-es] loop con matriz que cambia de nombre
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 : 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 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 : 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 on behalf of Manuel Mendoza 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
Re: [R-es] loop con matriz que cambia de nombre
Gracias Javier. Como explicaba en mi contestación a Carlos, el problema no está en escribir muchas líneas, ni en rizar el rizo, claro. El proceso se lo tengo que aplicar a unas cuantas bases de datos, y cada una de ellas me lleva un buen rato porque tengo que hacerlo con 9 criterios distintos. Si consigo hacer un loop que me haga los 9, que es lo que intento, me ahorrará tiempo. Manuel Quoting Javier Marcuzzi : Estimado Manuel Justo ahora estoy trabajando en un proceso automatizado con código, pero la mayoría de las veces tengo ciento de líneas donde mucho es copiar y pegar más la modificación de una o dos palabras, podría ser un proceso que se ejecute según criterios hasta la condición, pero la verdad que el objetivo no es ganar un concurso de ingenio escribiendo código. Usted quiere entrar en una parte donde R tiene demasiadas posibilidades y criterios, posiblemente en eso python es más claro. Yo sí tengo que copiar y pegar cientos de líneas antes que un bucle para acomodar datos, lo hago, prefiero cientos de bucles pequeños en muchas líneas que pueda leer, antes que pocas líneas con bucles anidados, aunque el código parezca de principiante. Javier Rubén Marcuzzi El dom., 24 de jun. de 2018 4:23 PM, Manuel Mendoza escribió: Gracias Javier, pero creo que si no consigo que me lo haga todo de una vez con un loop, me merece más la pena hacerlo como hasta ahora, una a una. Manuel Quoting Javier Marcuzzi : > Estimado Manuel Mendoza > > No sería lo ideal, pero de pronto podría ir guardando en json, que es una > forma no estructurada, luego toma los datos recorriendo este y crea una > estructura de dataframe para continuar. > > Javier Rubén Marcuzzi > > El sáb., 23 jun. 2018 a las 8:04, Manuel Mendoza () > escribió: > >> >> Bien, Carlos, lo de ir metiendo las dfs en una lista parece buena >> idea, y después puedo fusionarlas con un cbind, tal y como hago ahora >> mismo, después de crear cada una de ellas independientemente. Son 9 >> dfs, y obtener cada una de ellas toma bastante tiempo de computación. >> Lo que quiero es que me haga las 9 en un loop. El problema es que si >> no les pone nombres distintos a las variables, después no puedo >> identificarlas, y si les tengo que cambiar yo el nombre, no me merece >> la pena hace el loop. >> >> >> >> Quoting "Carlos J. Gil Bellosta" : >> >> > Es que no quieres crear objetos con nombres raros en tu entorno. Lo que >> > quieres hacer es crear una lista de matrices (o dfs). El consejo anterior >> > te explicaba con detalle cómo dispararte en el pie. Realmente, quieres >> > hacer otra cosa. >> > >> > El vie., 22 jun. 2018 a las 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 : >> >> >> >> > 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 on behalf of >> >> > Manuel Mendoza >> >> > 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(nro
Re: [R-es] loop con matriz que cambia de nombre
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. Manuel Quoting Carlos Ortega : 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 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 : 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 on behalf of Manuel Mendoza 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 -- 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
Re: [R-es] loop con matriz que cambia de nombre
Estimado Manuel Justo ahora estoy trabajando en un proceso automatizado con código, pero la mayoría de las veces tengo ciento de líneas donde mucho es copiar y pegar más la modificación de una o dos palabras, podría ser un proceso que se ejecute según criterios hasta la condición, pero la verdad que el objetivo no es ganar un concurso de ingenio escribiendo código. Usted quiere entrar en una parte donde R tiene demasiadas posibilidades y criterios, posiblemente en eso python es más claro. Yo sí tengo que copiar y pegar cientos de líneas antes que un bucle para acomodar datos, lo hago, prefiero cientos de bucles pequeños en muchas líneas que pueda leer, antes que pocas líneas con bucles anidados, aunque el código parezca de principiante. Javier Rubén Marcuzzi El dom., 24 de jun. de 2018 4:23 PM, Manuel Mendoza escribió: > > Gracias Javier, pero creo que si no consigo que me lo haga todo de una > vez con un loop, me merece más la pena hacerlo como hasta ahora, una a > una. > Manuel > > > > Quoting Javier Marcuzzi : > > > Estimado Manuel Mendoza > > > > No sería lo ideal, pero de pronto podría ir guardando en json, que es una > > forma no estructurada, luego toma los datos recorriendo este y crea una > > estructura de dataframe para continuar. > > > > Javier Rubén Marcuzzi > > > > El sáb., 23 jun. 2018 a las 8:04, Manuel Mendoza ( >) > > escribió: > > > >> > >> Bien, Carlos, lo de ir metiendo las dfs en una lista parece buena > >> idea, y después puedo fusionarlas con un cbind, tal y como hago ahora > >> mismo, después de crear cada una de ellas independientemente. Son 9 > >> dfs, y obtener cada una de ellas toma bastante tiempo de computación. > >> Lo que quiero es que me haga las 9 en un loop. El problema es que si > >> no les pone nombres distintos a las variables, después no puedo > >> identificarlas, y si les tengo que cambiar yo el nombre, no me merece > >> la pena hace el loop. > >> > >> > >> > >> Quoting "Carlos J. Gil Bellosta" : > >> > >> > Es que no quieres crear objetos con nombres raros en tu entorno. Lo > que > >> > quieres hacer es crear una lista de matrices (o dfs). El consejo > anterior > >> > te explicaba con detalle cómo dispararte en el pie. Realmente, quieres > >> > hacer otra cosa. > >> > > >> > El vie., 22 jun. 2018 a las 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 : > >> >> > >> >> > 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 on behalf of > >> >> > Manuel Mendoza > >> >> > 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 <- &g
Re: [R-es] loop con matriz que cambia de nombre
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 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 : > > 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 on behalf of Manuel >> Mendoza >> 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 [[alternative HTML version deleted]] ___ R-help-es mailing list R-help-es@r-project.org https://stat.ethz.ch/mailman/listinfo/r-help-es
Re: [R-es] loop con matriz que cambia de nombre
Gracias Javier, pero creo que si no consigo que me lo haga todo de una vez con un loop, me merece más la pena hacerlo como hasta ahora, una a una. Manuel Quoting Javier Marcuzzi : Estimado Manuel Mendoza No sería lo ideal, pero de pronto podría ir guardando en json, que es una forma no estructurada, luego toma los datos recorriendo este y crea una estructura de dataframe para continuar. Javier Rubén Marcuzzi El sáb., 23 jun. 2018 a las 8:04, Manuel Mendoza () escribió: Bien, Carlos, lo de ir metiendo las dfs en una lista parece buena idea, y después puedo fusionarlas con un cbind, tal y como hago ahora mismo, después de crear cada una de ellas independientemente. Son 9 dfs, y obtener cada una de ellas toma bastante tiempo de computación. Lo que quiero es que me haga las 9 en un loop. El problema es que si no les pone nombres distintos a las variables, después no puedo identificarlas, y si les tengo que cambiar yo el nombre, no me merece la pena hace el loop. Quoting "Carlos J. Gil Bellosta" : > Es que no quieres crear objetos con nombres raros en tu entorno. Lo que > quieres hacer es crear una lista de matrices (o dfs). El consejo anterior > te explicaba con detalle cómo dispararte en el pie. Realmente, quieres > hacer otra cosa. > > El vie., 22 jun. 2018 a las 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 : >> >> > 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 on behalf of >> > Manuel Mendoza >> > 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 >> -- 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
Re: [R-es] loop con matriz que cambia de nombre
Estimado Manuel Mendoza No sería lo ideal, pero de pronto podría ir guardando en json, que es una forma no estructurada, luego toma los datos recorriendo este y crea una estructura de dataframe para continuar. Javier Rubén Marcuzzi El sáb., 23 jun. 2018 a las 8:04, Manuel Mendoza () escribió: > > Bien, Carlos, lo de ir metiendo las dfs en una lista parece buena > idea, y después puedo fusionarlas con un cbind, tal y como hago ahora > mismo, después de crear cada una de ellas independientemente. Son 9 > dfs, y obtener cada una de ellas toma bastante tiempo de computación. > Lo que quiero es que me haga las 9 en un loop. El problema es que si > no les pone nombres distintos a las variables, después no puedo > identificarlas, y si les tengo que cambiar yo el nombre, no me merece > la pena hace el loop. > > > > Quoting "Carlos J. Gil Bellosta" : > > > Es que no quieres crear objetos con nombres raros en tu entorno. Lo que > > quieres hacer es crear una lista de matrices (o dfs). El consejo anterior > > te explicaba con detalle cómo dispararte en el pie. Realmente, quieres > > hacer otra cosa. > > > > El vie., 22 jun. 2018 a las 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 : > >> > >> > 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 on behalf of > >> > Manuel Mendoza > >> > 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 > >> > > > -- > 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 > [[alternative HTML version deleted]] ___ R-help-es mailing list R-help-es@r-project.org https://stat.ethz.ch/mailman/listinfo/r-help-es
Re: [R-es] loop con matriz que cambia de nombre
Bien, Carlos, lo de ir metiendo las dfs en una lista parece buena idea, y después puedo fusionarlas con un cbind, tal y como hago ahora mismo, después de crear cada una de ellas independientemente. Son 9 dfs, y obtener cada una de ellas toma bastante tiempo de computación. Lo que quiero es que me haga las 9 en un loop. El problema es que si no les pone nombres distintos a las variables, después no puedo identificarlas, y si les tengo que cambiar yo el nombre, no me merece la pena hace el loop. Quoting "Carlos J. Gil Bellosta" : Es que no quieres crear objetos con nombres raros en tu entorno. Lo que quieres hacer es crear una lista de matrices (o dfs). El consejo anterior te explicaba con detalle cómo dispararte en el pie. Realmente, quieres hacer otra cosa. El vie., 22 jun. 2018 a las 19:53, Manuel Mendoza () 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 : > 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 on behalf of > Manuel Mendoza > 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 -- 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
Re: [R-es] loop con matriz que cambia de nombre
Es que no quieres crear objetos con nombres raros en tu entorno. Lo que quieres hacer es crear una lista de matrices (o dfs). El consejo anterior te explicaba con detalle cómo dispararte en el pie. Realmente, quieres hacer otra cosa. El vie., 22 jun. 2018 a las 19:53, Manuel Mendoza () 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 : > > > 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 on behalf of > > Manuel Mendoza > > 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 > [[alternative HTML version deleted]] ___ R-help-es mailing list R-help-es@r-project.org https://stat.ethz.ch/mailman/listinfo/r-help-es
Re: [R-es] loop con matriz que cambia de nombre
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 : 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 on behalf of Manuel Mendoza 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
Re: [R-es] loop con matriz que cambia de nombre
Gracias Jesús. Quoting Jesús Para Fernández : 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 on behalf of Manuel Mendoza 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
[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