Parametrización para vagos muy, muy vagos

Un ejemplo sencillo. Tengo un programa que contiene, por ejemplo, una consulta tal que

query <- "select * from mitabla where country = 24 and year = 2014"

Hay gente sumamente diligente, con una enorme capacidad de trabajo y con vocación de hormiguita que en mil ejecuciones distintas (distinto país, distinto año) del código anterior sería capaz de editar la consulta a mano. Probablemente usando el block de notas. Esa gente, que además suele madrugar mucho, siempre me ha dado cierta envidia. No sé por qué.

Otros hemos sido bendecidos con la paradójica virtud de la pereza creativa. La pareza creativa es un no hacer las cosas por estar uno ocupado discurriendo cómo conseguir que se hagan solas. Así, uno acaba ensayando soluciones del tipo

query <- "select * from mitabla where country = @countryid and year = @year"
query <- gsub("@countryid", my.country, query)
query <- gsub("@year", my.year, query)

Pero un vago de verdad, un profesional de la procrastinación, un alérgico al estajanovismo reconoce humildemente que no transita en absoluto por terreno virgen, que millones se han enfrentado previamente al mismo problema y que a algún otro tiene que habérsele ocurrido tiempo ha la feliz idea. Excusa ideal para sumergirse en Google y dar con lo necesario para escribir algo tal como

library(whisker)
 
# idealmente, leído de un fichero de configuración
parms <- list(country = 28, year = 2013)
 
query.template <- "select * from mitabla where country = {{country}} and year = {{year}}"
query <- whisker.render(query.template, parms)

5 comentarios sobre “Parametrización para vagos muy, muy vagos

  1. Jorge A 5 febrero, 2015 9:36

    Me veo tan reflejado… jaja
    Conocía whisker q

  2. Jorge A 5 febrero, 2015 9:36

    Me veo tan reflejado… jaja
    Conocía whisker q

  3. Jorge A 5 febrero, 2015 9:37

    Me veo tan reflejado… jaja
    Conocía whisker que es lo que usa por debajo rCharts, pero no para este tipo de uso. ¡Probaré!
    ¡Un saludo!

  4. Jose Jimenez 5 febrero, 2015 9:49

    No pienso que sea buena idea tirar de un paquete adicional (en este caso whisker) cuando puedes usar un simple paste para hacer lo que quieres. Si bien es menos flexible cuando empiezas a meter muchos parámetros en la consulta, probablemente luego tengas menos errores por falta de paquetes en otro sistema.

  5. David 5 febrero, 2015 21:20

    Yo también me he visto totalmente reflejado en esta frase:
    «La pareza creativa es un no hacer las cosas por estar uno ocupado discurriendo cómo conseguir que se hagan solas.»

Los comentarios están desabilitados.