Ana Pérez V.
2012-Mar-09 14:54 UTC
[R-es] Rv: Re: Buscando la solución más eficiente para generar resultados a partir de un list
Hola, qué tal? Reenvío mi pregunta, por si no llegó... Gracias. Un saludo. --- El jue, 8/3/12, Ana Pérez V. <anapv78@yahoo.es> escribió: De: Ana Pérez V. <anapv78@yahoo.es> Asunto: Re: [R-es] Buscando la solución más eficiente para generar resultados a partir de un list Para: "Carlos J. Gil Bellosta" <cgb@datanalytics.com> CC: "r-help-es@r-project.org" <r-help-es@r-project.org> Fecha: jueves, 8 de marzo, 2012 07:15 Hola, ¿qué tal?. Gracias, Jorge y Carlos. En principio lo he implementado siguiendo la sugerencia de Jorge, y quería preguntaros cuál de las dos vías resultaría más eficiente para cubrir la posibilidad de que el volumen de datos sea significativo. Y en cualquier caso, respecto a la vía que me sugiere Carlos, ¿cómo creo la tabla "desnormalizada"?. ¿La creo a partir de mi lista inicial?. Gracias. Un saludo. --- El mié, 7/3/12, Carlos J. Gil Bellosta <cgb@datanalytics.com> escribió: De: Carlos J. Gil Bellosta <cgb@datanalytics.com> Asunto: Re: [R-es] Buscando la solución más eficiente para generar resultados a partir de un list Para: "Ana Pérez V." <anapv78@yahoo.es> CC: "r-help-es@r-project.org" <r-help-es@r-project.org> Fecha: miércoles, 7 de marzo, 2012 21:02 Bueno, reutilizando los tres pasos que te indicaba en el correo, previo,> 1) Parte de una función simple que, a partir de una serie y periodo > calcule tu parámetro de interés. > 2) Crea una función que aplique (1) a una serie de periodos > (seguramente, un sapply de la anterior). > 3) Crea una función que aplique (2) a un sujeto (posiblemente, una > lectura de series y de periodos).lo que deberías hacer es: a) Que (2) capturase (¿en un vector?) los parámetros calculados en (1). La función sapply lo hace automáticamente. b) La función (2) los devuelve al nivel superior (en el return). c) La función que aparece en (3) añade a su argumento (el bloque de información del sujeto) la salida de (2). La salida del último lapply sería una lista con campos sujeto, serie, periodo, parámetros (y la longitud de periodo y parámetros sería igual). De todos modos, igual sería más sencillo crear una tabla "desnormalizada" donde tuvieses las columnas nombre, serie, periodo serie se repetiría tantas veces como periodo y nombre tantas como series-periodo. Ej.: carlos serie1 periodo1 carlos serie1 periodo2 carlos serie2 periodo1 carlos serie2 periodo2 Podrías recorrer esa estructura de datos fácilmente y crear una última columna de parámetros. Igual te resulta más sencillo plantear tu problema así (en lugar de recorrer un árbol). Un saludo, Carlos J. Gil Bellosta http://www.datanalytics.com El 7 de marzo de 2012 20:50, Ana Pérez V. <anapv78@yahoo.es> escribió:> > Hola: > > Gracias, Carlos. Me has iluminado. > > Ahora quería ir un paso más allá. Vamos a ver... Supongamos que a cada > serie y período le aplico una función cuyo resultado debo utilizar para un > cálculo posterior; es decir, el cálculo posterior tiene en cuenta la serie, > el período y el valor obtenido en el cálculo previo. Por tal motivo, me > interesaría que ese valor obtenido que voy a necesitar me quedase > incorporado en la lista de partida, esto es, dentro de cada componente > (junto con la serie y el período). ¿Cómo puedo lograrlo?. > > Gracias. > > Saludos > Ana > > --- El mar, 6/3/12, Carlos J. Gil Bellosta <cgb@datanalytics.com> >escribió:> > > De: Carlos J. Gil Bellosta <cgb@datanalytics.com> > Asunto: Re: [R-es] Buscando la solución más eficiente para generar > resultados a partir de un list > Para: "Ana Pérez V." <anapv78@yahoo.es> > CC: "r-help-es@r-project.org" <r-help-es@r-project.org> > Fecha: martes, 6 de marzo, 2012 14:35 > > > Hola, ¿qué tal? > > Te recomendaría que, en lugar de ir de arriba para abajo, fueses de > abajo para arriba: > > 1) Parte de una función simple que, a partir de una serie yperiodo> calcule tu parámetro de interés. > 2) Crea una función que aplique (1) a una serie de periodos > (seguramente, un sapply de la anterior). > 3) Crea una función que aplique (2) a un sujeto (posiblemente, una > lectura de series y de periodos). > > Y aplícala a tu lista de sujetos con un lapply. > > Un saludo, > > Carlos J. Gil Bellosta > http://www.datanalytics.com > > > > > > > El día 6 de marzo de 2012 13:41, Ana Pérez V. <anapv78@yahoo.es> escribió: > > Hola: > > > > Tengo una lista de 2 elementos, cada uno de los cuales contiene > > información relativa a un sujeto (Pablo y Carlos). > > > > lSujetos <- list() > >lSujetos[[1]] <- list(nomfich="Pablo", colTime=5, colVars=c(6,7,8))> > lSujetos[[2]] <- list(nomfich="Carlos", colTime=5, colVars=c(6,7,8)) > > > > A continuación, leo las series temporales correspondientes a cada > > individuo. En este caso leo, para cada individuo, las series > > correspondientes a las columnas de las posiciones 6, 7 y 8 en el fichero: > > > > misSeries <- lapply(lSujetos, leeSeries) > > > > siendo leeSeries la función que se encarga de recoger esas series. > > > > Como consecuencia de lo anterior, en "misSeries" tengo 2 elementos > > principales y cada uno tiene 3 subelementos (uno por serie temporal). > > > > Pues bien, sobre esta variable (misSeries) debo aplicar diferentes > > funciones para obtener diversos parámetros. > > > > Un ejemplo: > > resul<- lapply(series, function(x) lapply (x, AnalisisMacroscopico))> > > > Pues bien: exactamente esos resultados no los debo generar para cada > > serie, sino para cada serie y período, pudiendo existir más de un período > > (supongamos 5 períodos); de tal modo que debo volcar en fichero una tabla de > > resultados que tenga exactamente N*3*5 = 30 filas, siendo N el número de > > individuos (en este caso N=2). > > > > ¿Cuál es la manera más eficiente de hacerlo?. Me refiero a la manera de > > meter en juego al vector de posibles períodos, y a la manera de aplicar las > > funciones pensando en que el objetivo es mostrar esa tabla de resultados. > > > > Espero no haberme extendido demasiado. > > > > Gracias. > > > > Un saludo. > > [[alternative HTMLversion 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]]