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]]
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 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]]