Hola, estoy buscando la manera de crear una lista que contenga una serie de data frames (un número que puede variar con el tiempo pero que siempre van a tener un nombre con una pauta definida). La lista debe estar nombrada con el nombre de cada data frame. Quiero evitar esto: # ------- lista <- list(df1 = df1, df2 = df2, dfn = dfn) # ------- ya que como no sé cuantos data frames voy a tener en un futuro. ¿Alguna idea o sugerencia? Muchas gracias Rubén [[alternative HTML version deleted]]
Una forma de asignar elementos a una lista es: Lista[["nombre del data.frame"]] <- data.frame Lista debe existir. La puedes haber creado anteriormente en la forma en que indicas. -----Mensaje original----- De: R-help-es [mailto:r-help-es-bounces en r-project.org] En nombre de Rubén Coca Enviado el: miércoles, 18 de octubre de 2017 13:05 Para: Lista R Asunto: [R-es] Crear lista con data frames Hola, estoy buscando la manera de crear una lista que contenga una serie de data frames (un número que puede variar con el tiempo pero que siempre van a tener un nombre con una pauta definida). La lista debe estar nombrada con el nombre de cada data frame. Quiero evitar esto: # ------- lista <- list(df1 = df1, df2 = df2, dfn = dfn) # ------- ya que como no sé cuantos data frames voy a tener en un futuro. ¿Alguna idea o sugerencia? Muchas gracias Rubén [[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
Estimado Rubén Coca Técnicamente es posible, pero crea algo en memoria que puede ser complicado de manejar, si los datos son pocos no habría problemas, pero si estos se incrementan habría que eliminar de memoria los data.frame que se incluyeron en la lista y comienza algo que puede ser engorroso. Dices que no sabes cuántos data.frame tendrás en el futuro, hay un problema, R no es una base de datos, puedes entrar en "caminos con curvas peligrosas". En todo caso en lugar de lista plantearía sqldf. Javier Rubén Marcuzzi El 18 de octubre de 2017, 8:20, Bartolomé Marcos, José Antonio < josea.bartolome en mineco.es> escribió:> Una forma de asignar elementos a una lista es: > > Lista[["nombre del data.frame"]] <- data.frame > > Lista debe existir. La puedes haber creado anteriormente en la forma en > que indicas. > > > -----Mensaje original----- > De: R-help-es [mailto:r-help-es-bounces en r-project.org] En nombre de Rubén > Coca > Enviado el: miércoles, 18 de octubre de 2017 13:05 > Para: Lista R > Asunto: [R-es] Crear lista con data frames > > Hola, > estoy buscando la manera de crear una lista que contenga una serie de data > frames (un número que puede variar con el tiempo pero que siempre van a > tener un nombre con una pauta definida). La lista debe estar nombrada con > el nombre de cada data frame. > > Quiero evitar esto: > > # ------- > lista <- list(df1 = df1, df2 = df2, dfn = dfn) # ------- > > ya que como no sé cuantos data frames voy a tener en un futuro. > > ¿Alguna idea o sugerencia? > Muchas gracias > > Rubén > > [[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 > > _______________________________________________ > R-help-es mailing list > R-help-es en r-project.org > https://stat.ethz.ch/mailman/listinfo/r-help-es >[[alternative HTML version deleted]]
Hola Ruben, si te he entendido correctamente, para nombrarlos simplemente con paste... ## generamos un dataframe df <- data.frame(a=rnorm(10),b=runif(10)) ## iniciamos una lista sin nombres lista <- list(df,df,df,df) names(lista) ## NULL ## nombramos segun la secuencia, names(lista) <- paste('df', 1:length(lista), sep='') names(lista) ## annadimos un nuevo dataframe lista <- c(lista,list(df)) names(lista) # nos faltara el nombre del ultimo data frame annadido ##simplemente renombramos again names(lista) <- paste('df', 1:length(lista), sep='') names(lista) No se si es lo que querias.Saludos Fer El Miércoles 18 de octubre de 2017 22:05, Rubén Coca <ruben.coca en gmail.com> escribió: Hola, estoy buscando la manera de crear una lista que contenga una serie de data frames (un número que puede variar con el tiempo pero que siempre van a tener un nombre con una pauta definida). La lista debe estar nombrada con el nombre de cada data frame. Quiero evitar esto: # ------- lista <- list(df1 = df1, df2 = df2, dfn = dfn) # ------- ya que como no sé cuantos data frames voy a tener en un futuro. ¿Alguna idea o sugerencia? Muchas gracias Rubén [[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 [[alternative HTML version deleted]]
Estimado Rubén Coca Si no comprendo mal eso son datos no estructurados, en otras palabras, se pueden guardar las relaciones, los datos estructurados como el típico sql, y los no estructurados como las base de datos json. Posiblemente JSONB sea un buen formato para guardar lo que usted desea (ya está creado). El 19 de octubre de 2017, 18:10, Rubén Coca <ruben.coca en gmail.com> escribió:> Gracias Javier por la respuesta. > Quizá no me expliqué de forma clara. Si te explico por qué necesito hacer > una lista puedas ayudarme mejor. > Como te decía, tengo una serie indeterminada de data frames que tienen un > nombre reconocible con un patrón. Mi intención es guardar como fichero .csv > el contenido de cada data frame, pero querría hacerlo llamando a la función > lapply (porque no quiero estar retocando el código cada vez que cambia el > número de data frames). Es por eso que me pareció que integrar cada data > frame en una lista podría ser una buena solución. Una dificultad añadida es > que la lista de data frames debe estar nombrada, para que el nombre lo > pueda usar para nombrar el .csv. > > Espero haberme explicado con claridad. Muchas gracias por todo!! > Atentamente, > Rubén > > 2017-10-19 14:02 GMT+02:00 Javier Marcuzzi <javier.ruben.marcuzzi en gmail. > com>: > >> Estimado Rubén Coca >> >> Técnicamente es posible, pero crea algo en memoria que puede ser >> complicado de manejar, si los datos son pocos no habría problemas, pero si >> estos se incrementan habría que eliminar de memoria los data.frame que se >> incluyeron en la lista y comienza algo que puede ser engorroso. Dices que >> no sabes cuántos data.frame tendrás en el futuro, hay un problema, R no es >> una base de datos, puedes entrar en "caminos con curvas peligrosas". En >> todo caso en lugar de lista plantearía sqldf. >> >> Javier Rubén Marcuzzi >> >> El 18 de octubre de 2017, 8:20, Bartolomé Marcos, José Antonio < >> josea.bartolome en mineco.es> escribió: >> >>> Una forma de asignar elementos a una lista es: >>> >>> Lista[["nombre del data.frame"]] <- data.frame >>> >>> Lista debe existir. La puedes haber creado anteriormente en la forma en >>> que indicas. >>> >>> >>> -----Mensaje original----- >>> De: R-help-es [mailto:r-help-es-bounces en r-project.org] En nombre de >>> Rubén Coca >>> Enviado el: miércoles, 18 de octubre de 2017 13:05 >>> Para: Lista R >>> Asunto: [R-es] Crear lista con data frames >>> >>> Hola, >>> estoy buscando la manera de crear una lista que contenga una serie de >>> data frames (un número que puede variar con el tiempo pero que siempre van >>> a tener un nombre con una pauta definida). La lista debe estar nombrada con >>> el nombre de cada data frame. >>> >>> Quiero evitar esto: >>> >>> # ------- >>> lista <- list(df1 = df1, df2 = df2, dfn = dfn) # ------- >>> >>> ya que como no sé cuantos data frames voy a tener en un futuro. >>> >>> ¿Alguna idea o sugerencia? >>> Muchas gracias >>> >>> Rubén >>> >>> [[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 >>> >>> _______________________________________________ >>> R-help-es mailing list >>> R-help-es en r-project.org >>> https://stat.ethz.ch/mailman/listinfo/r-help-es >>> >> >> >[[alternative HTML version deleted]]