[R-es] T4 templates R

Javier Marcuzzi javier.ruben.marcuzzi en gmail.com
Lun Ene 4 15:33:02 CET 2016


Estimados

Comprendo las alternativas, yo pensaba en algo sencillo como una archivo rnw, md, algo que permita en forma fácil mezclar R con código para generar R, lo que me gusto de T4 (que desconozco si corre en la versión de visual studio code – que tiene R) es la forma más o menos limpia de generar código.

r-eval-expression puede estar dentro de la línea de mi pensamiento, pero estimo una complicación de lectura al ojo humano, el escribir el código R que genera el código R, todo en R, pide cierta concentración que en casos donde la cantidad de líneas R aumenta, es un “R + lío = Relio”. Tendría que encontrar un “marcado” en el código para facilitar la lectura.

Aunque esta pregunta fue por curiosidad, no me encuentro en un problema concreto para resolver.

Javier Rubén Marcuzzi


De: Francisco Viciana
Enviado: lunes, 4 de enero de 2016 6:02
Para: r-help-es en r-project.org
Asunto: Re: [R-es] T4 templates R

Una alternativa que creo  resuelve la cuestión es mediante un 
"precompilador", como "gcc -E" o cualquier otro, incluyendo irectiva 
#include y  #define para la parametrización del código. Si embargo me 
parece una solución un tanto barroca, yo intentaría parametrizarlo 
usando código R puro.


Fran

On 03/01/16 20:10, Carlos Ortega wrote:
> Hola,
>
> "sed" está también en Windows:
> http://gnuwin32.sourceforge.net/packages/sed.htm
> Y si se quiere ir un poco más lejos, basta con instalarse Cygwin:
> https://www.cygwin.com/ y así tener un Linux conviviendo con Windows (no es
> necearia ninguna partición), con sed, awk/gawk, y otras alternativas...
>
> Y dependiendo de la complejidad de lo que quieras hacer, puedes hasta
> generar codigo "R" dentro de R y luego ejecutarlo sin salirte de la misma
> sesión, a través de la función "eval()":
>
> http://stackoverflow.com/questions/1743698/r-eval-expression
> http://stackoverflow.com/questions/18886015/evalparsetext-x-inside-a-function-how-to-evaluate-in-global-environment
>
> Saludos,
> Carlos Ortega
> www.qualityexcellence.es
>
>
> El 2 de enero de 2016, 21:27, Javier Marcuzzi <
> javier.ruben.marcuzzi en gmail.com> escribió:
>
>> Estimado Carlos Ortega
>>
>>
>>
>> Podría ser sh, pero creo awk (gawk), están para todos los sistemas, awk
>> llegó  a mi por un software de genética que lo utilizaba para colocar los
>> resultados a cada individuo, por decirlo de alguna forma. Pero reformulando
>> mi pregunta y mezclándola con su respuesta, fit <- lm (y ~ …….., data =
>> misdatos), suponiendo que mis datos tiene columnas A,B,C,D, …,
>>
>> Una especie de plantilla que cree
>>
>> Fit <- lm( Y+ a, data=misdatos)
>>
>> Fit <- lm( Y+ a+b, data=misdatos)
>>
>> Fit <- lm( Y+ a+b+c, data=misdatos)
>>
>> Fit <- lm( Y+ b+c, data=misdatos)
>>
>> Fit <- lm( Y+ c, data=misdatos)
>>
>>
>>
>> Las diferentes combinaciones para todos los modelos posible, algunos
>> ilógicos en la realidad pero estadísticamente posibles. Con un poco de
>> trabajo esto no sería complicado, pero posiblemente hay alguna persona
>> desarrolló facilitando la edición de código.
>>
>>
>>
>> Javier Rubén Marcuzzi
>>
>>
>> *De: *Carlos Ortega <cof en qualityexcellence.es>
>> *Enviado: *sábado, 2 de enero de 2016 17:02
>> *Para: *Javier Marcuzzi <javier.ruben.marcuzzi en gmail.com>
>> *CC: *r-help-es en r-project.org
>> *Asunto: *Re: [R-es] T4 templates R
>>
>>
>>
>> Hola,
>>
>> En Linux, Mac puedes hacerlo de una forma bastante directa.
>>
>>     - Por un lado tienes tus ficheros que son las plantillas con el código
>>     R donde los campos a cambiar los tienes bien identificados.
>>     - Y por otro tienes un programa que altera estas plantillas y que
>>     genera los "*.R"
>>
>> Un ejemplo podría ser este.
>>
>> A) El fichero con la plantilla:
>>
>> #-------Plantilla en el fichero: ModeloLineal.plantilla
>>
>> mysDatos <- read.table("FILEDATOS.csv", header=T, as.is=T, sep=";")
>>
>> fit <- lm( y ~. , data=mysDatos)
>>
>> summary(fit)
>>
>> #--------------------------------
>>
>> B) Y este sería el fichero con que modificaría la plantilla anterior para
>> generar el ".R". Este  fichero en entornos Linux, Unix, Mac simplemente los
>> ejecutarías como un shell script.
>>
>>
>>
>> #!/bin/sh
>>
>> sed s/FILEDATOS/mi_nombre_fichero/g ModeloLineal.plantilla > ModeloLineal.R
>>
>>
>>
>> (el caso del ejemplo exige que tu fichero de datos tenga como nombre de la
>> columna de la variable a modelar "y", también exigiría que tu fichero
>> estuviera en formato ".csv".
>>
>>
>>
>> Saludos,
>>
>> Carlos Ortega
>>
>> www.qualityexcellence.es
>>
>>
>>
>> El 1 de enero de 2016, 22:34, Javier Marcuzzi <
>> javier.ruben.marcuzzi en gmail.com> escribió:
>>
>>
>> Estimados
>>
>> Buen 2016, año nuevo cosas nuevas, estoy leyendo un librito de unas 200
>> páginas sobre T4, básicamente crea plantillas y se puede colocar dentro de
>> ellas el código, por ejemplo por cada elemento de la lista realizar lo
>> siguiente (if, sum, lm ...).
>>
>> Es  mucho más fácil ver un video (por suerte o por malo forma parte de
>> visual studio), desconozco si en R hay algo semejante, pero mi pregunta va
>> por lo siguiente, ¿Qué pasa si preparo una serie de análisis en R, dejando
>> las variables a llenar? Me refiero a crear una plantilla de códigos R,
>> luego se ejecuta esta plantilla con los datos, generando la colección de
>> análisis de R, que posteriormente ejecuta R.
>>
>> En otras palabras seria como Sweave, que en lugar de generar latex genera
>> R.
>>
>> Javier Rubén Marcuzzi
>>
>>          [[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
>>
>>
>>
>>
>> --
>>
>> Saludos,
>> Carlos Ortega
>> www.qualityexcellence.es
>>
>>
>>
>
>

-- 
+--------------------------------------------------------------
| Francisco J. Viciana Fernández
| Coordinador del Registro de Población
| Servicio de Estadísticas Demográficas y Sociales
| Instituto de Estadística y Cartografía de Andalucía
| Leonardo Da Vinci, nº 21. Isla de La Cartuja.
| 41071 SEVILLA.
| franciscoj.viciana en juntadeandalucia.es
| Tlf.: +(34) 95 503 38 21
+--------------------------------------------------------------

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



Más información sobre la lista de distribución R-help-es