Estimado Jorge Velez Lo que usted dice tiene algo a mi pregunta, pero yo la formule mal. Voy a preguntar nuevamente con un ejemplo que tiene errores, pero es más próximo a lo que estoy pensando. Modelo (con error pero no importa) modelo <- muerte = edad + sexo + 1!causa Causa: infarto, infarto, súbita, muerte en tiroteo El modelo lineal, sobrevida, etc. corre sin inconvenientes (aunque demora pero es bueno). Los resultados van a dos (muchas) instituciónes, suponiendo que utilizo ranef(), el número de muerte en tiroteo se le informa a la policía, y las patologías al hospital, edad y sexo son comunes. Lo que yo pensé y no tengo mucha idea si es posible, es crear un pdf para cada institución, para lo cuál sweave es una alternativa, para esto cada vez que R se ejecuta puedo colocar algo en en if para separar lo que se crea en el pdf para policía y el pdf para el hospital, pero cada vez ejecutaría el modelo que es común, entoces ¿como hacer para que se ejecute una sola vez y generar con sweave dos archivos pdf? Javier Marcuzzi El 24/05/2014 08:06 a.m., Jorge I Velez escribió:> Hola Javier, > > Quizas no haya entendido muy bien, pero esto es lo que se me ocurre. > Por cierto, a que te refieres con "cálculo del modelo"? Estas > ajustando algun tipo de modelo, e.g., lm(), glm() o lmer()? > > Supongamos que el modelo es unico (un lm() por ejemplo) y que se > encuentra almacenado en el objeto fit. Si lo que necesitas para la > variables A y B depende de la informacion contenida en ese objeto, la > parte 2.1 y 2.2 que mencionas pueden resolverse facilmente creando una > funcion que tome como argumento el objeto que contiene el modelo > ajustado y el nombre de la variable que necesitas calcular (A o B en > este caso). Esta funcion debe tener la posibilidad de no solo > calcular lo que necesitas para cada variable, sino tambien la opcion > de poder exportar el resultado obtenido, ojala con el nombre de la > varible de entrada. Seria algo como > > mifuncion <- function(variable, modelo){ > resultado <- hacer_algo_con_el_modelo(variable) > write.table(..., paste0('res_', variable, '.txt'), ...) > } > > Asi las cosas, en mi opinion, lo mejor seria algo como > > lapply(variables, mifuncion, modelo = modelo) > > Luego de ejecutar esta instruccion, en tu espacio de trabajo veras los > archivos .txt que contienen la informacion obtenida despues de > realizar algun proceso sobre cada variable utilizando el modelo ajustado. > > Espero sea de utilidad. > > Saludos, > Jorge.- > > > > 2014-05-24 2:18 GMT+10:00 Marcuzzi, Javier Ruben > <javier.ruben.marcuzzi@gmail.com > <mailto:javier.ruben.marcuzzi@gmail.com>>: > > R múltiple > > Estoy pensando en un problema que tendré que solucionar pero aún no > comencé a escribirlo, por lo tanto no hay código en R como para > compartir, sin embargo no tengo idea de cómo realizarlo desde R. > > El planteo es el siguiente: > > Los datos son en una cantidad necesaria para que el procesamiento > estadístico demore (minutos, horas). > > Supongamos dos variables (serían más), la A y la B, por lo que se > desea > informar la A un archivo y la B a otro archivo. > > Se podría correr dos veces (o muchas) el código modificando la > escritura > para A y para B, pero al ser muchos y teniendo en cuenta el tiempo de > procesamiento, donde el cálculo del modelo no sería necesario procesar > por cada ejecución de variable (A y B). > > Expresado de otra forma, (1) es el procesamiento del modelo, (2.1) y > (2.2) son procesos sobre el modelo, por ejemplo ranef para solo A y > ranef para solo B. > > El resultado de ranef para A, es decir filtrando solo la vaiable A se > escribe en el archivo A. > > Por lo que tendría dos archivos, uno A y otro B, donde ambos > tienen una > parte en común (1) y la correspondiente (2.1) para A y (2.2) para > B. Mi > deseo es no tener que procesar muchas veces la parte (1). > > ¿Alguna sugerencia? > > Javier Marcuzzi > > > [[alternative HTML version deleted]] > > > _______________________________________________ > R-help-es mailing list > R-help-es@r-project.org <mailto:R-help-es@r-project.org> > https://stat.ethz.ch/mailman/listinfo/r-help-es > >[[alternative HTML version deleted]]
Hola Javier, En http://stackoverflow.com/questions/15396755/using-loops-with-knitr-to-produce-multiple-pdf-reports-need-a-little-help-toparece haber una solucion con knitr. Saludos, Jorge.- 2014-05-25 0:03 GMT+10:00 Marcuzzi, Javier Ruben < javier.ruben.marcuzzi@gmail.com>:> Estimado Jorge Velez > > Lo que usted dice tiene algo a mi pregunta, pero yo la formule mal. Voy a > preguntar nuevamente con un ejemplo que tiene errores, pero es más próximo > a lo que estoy pensando. > > Modelo (con error pero no importa) > modelo <- muerte = edad + sexo + 1!causa > > Causa: infarto, infarto, súbita, muerte en tiroteo > > El modelo lineal, sobrevida, etc. corre sin inconvenientes (aunque demora > pero es bueno). > > Los resultados van a dos (muchas) instituciónes, suponiendo que utilizo > ranef(), el número de muerte en tiroteo se le informa a la policía, y las > patologías al hospital, edad y sexo son comunes. > > Lo que yo pensé y no tengo mucha idea si es posible, es crear un pdf para > cada institución, para lo cuál sweave es una alternativa, para esto cada > vez que R se ejecuta puedo colocar algo en en if para separar lo que se > crea en el pdf para policía y el pdf para el hospital, pero cada vez > ejecutaría el modelo que es común, entoces ¿como hacer para que se ejecute > una sola vez y generar con sweave dos archivos pdf? > > Javier Marcuzzi > > > > El 24/05/2014 08:06 a.m., Jorge I Velez escribió: > > Hola Javier, > > Quizas no haya entendido muy bien, pero esto es lo que se me ocurre. > Por cierto, a que te refieres con "cálculo del modelo"? Estas ajustando > algun tipo de modelo, e.g., lm(), glm() o lmer()? > > Supongamos que el modelo es unico (un lm() por ejemplo) y que se > encuentra almacenado en el objeto fit. Si lo que necesitas para la > variables A y B depende de la informacion contenida en ese objeto, la parte > 2.1 y 2.2 que mencionas pueden resolverse facilmente creando una funcion > que tome como argumento el objeto que contiene el modelo ajustado y el > nombre de la variable que necesitas calcular (A o B en este caso). Esta > funcion debe tener la posibilidad de no solo calcular lo que necesitas para > cada variable, sino tambien la opcion de poder exportar el resultado > obtenido, ojala con el nombre de la varible de entrada. Seria algo como > > mifuncion <- function(variable, modelo){ > resultado <- hacer_algo_con_el_modelo(variable) > write.table(..., paste0('res_', variable, '.txt'), ...) > } > > Asi las cosas, en mi opinion, lo mejor seria algo como > > lapply(variables, mifuncion, modelo = modelo) > > Luego de ejecutar esta instruccion, en tu espacio de trabajo veras los > archivos .txt que contienen la informacion obtenida despues de realizar > algun proceso sobre cada variable utilizando el modelo ajustado. > > Espero sea de utilidad. > > Saludos, > Jorge.- > > > > 2014-05-24 2:18 GMT+10:00 Marcuzzi, Javier Ruben < > javier.ruben.marcuzzi@gmail.com>: > >> R múltiple >> >> Estoy pensando en un problema que tendré que solucionar pero aún no >> comencé a escribirlo, por lo tanto no hay código en R como para >> compartir, sin embargo no tengo idea de cómo realizarlo desde R. >> >> El planteo es el siguiente: >> >> Los datos son en una cantidad necesaria para que el procesamiento >> estadístico demore (minutos, horas). >> >> Supongamos dos variables (serían más), la A y la B, por lo que se desea >> informar la A un archivo y la B a otro archivo. >> >> Se podría correr dos veces (o muchas) el código modificando la escritura >> para A y para B, pero al ser muchos y teniendo en cuenta el tiempo de >> procesamiento, donde el cálculo del modelo no sería necesario procesar >> por cada ejecución de variable (A y B). >> >> Expresado de otra forma, (1) es el procesamiento del modelo, (2.1) y >> (2.2) son procesos sobre el modelo, por ejemplo ranef para solo A y >> ranef para solo B. >> >> El resultado de ranef para A, es decir filtrando solo la vaiable A se >> escribe en el archivo A. >> >> Por lo que tendría dos archivos, uno A y otro B, donde ambos tienen una >> parte en común (1) y la correspondiente (2.1) para A y (2.2) para B. Mi >> deseo es no tener que procesar muchas veces la parte (1). >> >> ¿Alguna sugerencia? >> >> Javier Marcuzzi >> >> >> [[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]]
Estimado Jorge Velez Muchas gracias por la información, intente a partir de los ejemplos realizar las modificaciónes necesarias para mi computadora, y aparentemente funcionaría, los ejemplos son correctos, salvo que se me generan archivos en una carpeta que no indico en el código, pero posiblemente eso es por el sistema operativo y configuraciónes. A partir de R, separando en dos archivos, un R y un Rnw que se lee desde el anterior (R), se ejecuta una vez el R y por medio de código sin intervención del usuario de llega a dos archivos pdf (más los auxiliares de latex ...). Nada complicado, creo que muy entendible, hasta casi los usuarios que tienen muy poca experiencia. Lógicamente falta mucho tabajo para cada caso en particular, pero el mecanismo utilizado en esos ejemplos puede ser el apropiado para muchos usuarios de R. Javier Marcuzzi El 25/05/2014 04:36 a.m., Jorge I Velez escribió:> Hola Javier, > > En > http://stackoverflow.com/questions/15396755/using-loops-with-knitr-to-produce-multiple-pdf-reports-need-a-little-help-to > parece haber una solucion con knitr. > > Saludos, > Jorge.- > > > > 2014-05-25 0:03 GMT+10:00 Marcuzzi, Javier Ruben > <javier.ruben.marcuzzi@gmail.com > <mailto:javier.ruben.marcuzzi@gmail.com>>: > > Estimado Jorge Velez > > Lo que usted dice tiene algo a mi pregunta, pero yo la formule > mal. Voy a preguntar nuevamente con un ejemplo que tiene errores, > pero es más próximo a lo que estoy pensando. > > Modelo (con error pero no importa) > modelo <- muerte = edad + sexo + 1!causa > > Causa: infarto, infarto, súbita, muerte en tiroteo > > El modelo lineal, sobrevida, etc. corre sin inconvenientes (aunque > demora pero es bueno). > > Los resultados van a dos (muchas) instituciónes, suponiendo que > utilizo ranef(), el número de muerte en tiroteo se le informa a la > policía, y las patologías al hospital, edad y sexo son comunes. > > Lo que yo pensé y no tengo mucha idea si es posible, es crear un > pdf para cada institución, para lo cuál sweave es una alternativa, > para esto cada vez que R se ejecuta puedo colocar algo en en if > para separar lo que se crea en el pdf para policía y el pdf para > el hospital, pero cada vez ejecutaría el modelo que es común, > entoces ¿como hacer para que se ejecute una sola vez y generar con > sweave dos archivos pdf? > > Javier Marcuzzi > > > > El 24/05/2014 08:06 a.m., Jorge I Velez escribió: >> Hola Javier, >> >> Quizas no haya entendido muy bien, pero esto es lo que se me >> ocurre. Por cierto, a que te refieres con "cálculo del >> modelo"? Estas ajustando algun tipo de modelo, e.g., lm(), >> glm() o lmer()? >> >> Supongamos que el modelo es unico (un lm() por ejemplo) y que se >> encuentra almacenado en el objeto fit. Si lo que necesitas para >> la variables A y B depende de la informacion contenida en ese >> objeto, la parte 2.1 y 2.2 que mencionas pueden resolverse >> facilmente creando una funcion que tome como argumento el objeto >> que contiene el modelo ajustado y el nombre de la variable que >> necesitas calcular (A o B en este caso). Esta funcion debe tener >> la posibilidad de no solo calcular lo que necesitas para cada >> variable, sino tambien la opcion de poder exportar el resultado >> obtenido, ojala con el nombre de la varible de entrada. Seria >> algo como >> >> mifuncion <- function(variable, modelo){ >> resultado <- hacer_algo_con_el_modelo(variable) >> write.table(..., paste0('res_', variable, '.txt'), ...) >> } >> >> Asi las cosas, en mi opinion, lo mejor seria algo como >> >> lapply(variables, mifuncion, modelo = modelo) >> >> Luego de ejecutar esta instruccion, en tu espacio de trabajo >> veras los archivos .txt que contienen la informacion obtenida >> despues de realizar algun proceso sobre cada variable utilizando >> el modelo ajustado. >> >> Espero sea de utilidad. >> >> Saludos, >> Jorge.- >> >> >> >> 2014-05-24 2:18 GMT+10:00 Marcuzzi, Javier Ruben >> <javier.ruben.marcuzzi@gmail.com >> <mailto:javier.ruben.marcuzzi@gmail.com>>: >> >> R múltiple >> >> Estoy pensando en un problema que tendré que solucionar pero >> aún no >> comencé a escribirlo, por lo tanto no hay código en R como para >> compartir, sin embargo no tengo idea de cómo realizarlo desde R. >> >> El planteo es el siguiente: >> >> Los datos son en una cantidad necesaria para que el procesamiento >> estadístico demore (minutos, horas). >> >> Supongamos dos variables (serían más), la A y la B, por lo >> que se desea >> informar la A un archivo y la B a otro archivo. >> >> Se podría correr dos veces (o muchas) el código modificando >> la escritura >> para A y para B, pero al ser muchos y teniendo en cuenta el >> tiempo de >> procesamiento, donde el cálculo del modelo no sería necesario >> procesar >> por cada ejecución de variable (A y B). >> >> Expresado de otra forma, (1) es el procesamiento del modelo, >> (2.1) y >> (2.2) son procesos sobre el modelo, por ejemplo ranef para >> solo A y >> ranef para solo B. >> >> El resultado de ranef para A, es decir filtrando solo la >> vaiable A se >> escribe en el archivo A. >> >> Por lo que tendría dos archivos, uno A y otro B, donde ambos >> tienen una >> parte en común (1) y la correspondiente (2.1) para A y (2.2) >> para B. Mi >> deseo es no tener que procesar muchas veces la parte (1). >> >> ¿Alguna sugerencia? >> >> Javier Marcuzzi >> >> >> [[alternative HTML version deleted]] >> >> >> _______________________________________________ >> R-help-es mailing list >> R-help-es@r-project.org <mailto:R-help-es@r-project.org> >> https://stat.ethz.ch/mailman/listinfo/r-help-es >> >> > >[[alternative HTML version deleted]]