Rmarkdown en el panel principal de Shiny

R

Comparto con mis lectores un experimento de esta misma mañana: cómo insertar en el panel principal de Shiny un documento generado con Rmarkdown. Que, por supuesto, cambia según se seleccionen unos u otros parámetros en Shiny.

Es un ejemplo sencillo, estúpido, sin comentarios, desordenado y, en resumen, muy mejorable. Puede descargarse de aquí.

El truco es de los sucios:

  • En server.R se guardan los parámetros que envía ui.R en un fichero de intercambio con save.
  • La plantilla del .Rmd lee esos parámetros durante el proceso de compilación (con rmarkdown::render).
  • ui.R pinta el html con htmlOutput.

Y, a partir de la plantilla, ¡a crecer!

Gráficos interactivos con R: un resumen

Aquí encontrará el lector un resumen de herramientas para crear gráficos interactivos con R que, por referencia, discute

  • ggvis: desarrollados por los creadores de ggplot2
  • rCharts: una interfaz de R con una serie de librerías de javascript para crear gráficos
  • plotly: hace magia para añadir interactividad a gráficos creados con ggplot2 (y otros)
  • googleVis: que permite utilizar Google Chart Tools desde R

La ciencia: dos puntos de vista

La escala de grises media entre un blanco y un negro, las dos posturas frecuentemente identificables que expongo.

Postura uno: ciencia como fin en sí mismo. Los científicos reclaman a través de un bucle burocrático recursos a las clases productivas. Si alguien levanta la ceja alegan eso de que sin ciencia no hay futuro y de preguntárseles por evidencias del impacto social de su quehacer responden, a lo más, con evidencia anecdótica.

Discretización de variables continuas (con árboles)

La primera entrada de esta bitácora es de enero de 2010. En aquella época, recuerdo, había apartado un artículo sobre categorización de variables continuas, i.e., el proceso de convertir (¿para qué?) una variable continua en categórica de una manera óptima.

Aparte de cuestionar el paraqué (¿por qué porqué es sustantivo y paraqué no?) de la cosa me asaltaron dudas sobre el cómo. Si se quiere discretizar, ¿por qué no usar directamente un árbol? Es decir, un árbol simple en el que se modele la variable objetivo en función de la continua que se desee discretizar.

En una API de cuyo endpoint no quiero acordarme...

… rigen los siguientes términos de servicio (que traduzco, porque el original vienen en inglés):

Usuarios autorizados: usuarios afiliados a una institución educativa de investigación o sin ánimo de lucro.

Supongo que ese es el fin de la historia: estoy expulsado de ella, salvo que retuerza el hilo de la casuística, relaje el perímetro de las acepciones y me considere afiliado a alguna de las instituciones educativas donde imparto alguna clase; y justifique, claro está, que no tienen ánimo de lucro.

El cincuenta en raya (y el tres en raya)

Supongo que todos conocéis el tres en raya. El cincuenta en (casi) raya, sin embargo, es esto:

cincuenta_en_raya

Hay dos variables, (pluviosidad y ratio hombres/mujeres) y los cincuenta punticos casi en raya corresponden a los estados de EE.UU.

¿Asombrosa correlación? No tanto.

Aquí se discute cómo, en realidad, por su cercanía sociocultural y climática cada uno de los estados del gráfico son manifestaciones de tres grupos de ellos que, estos sí, esta? en raya (¿casualmente?).

El impacto causal del óbito del Sr. Botín en la cotización bursátil del benemérito Banco de Santander

R

El Sr. Botín, presidente que fue del Banco de Santander, falleció el 2014-09-10. Cabe preguntarse por el impacto causal à la Google de no continuidad de su gestión a cargo de dicha institución.

Comienzo pues.

Primero los datos:

library(tseries)
library(CausalImpact)

santander <- get.hist.quote(instrument="san.mc",
    start= Sys.Date() - 365*3,
    end= Sys.Date(), quote="AdjClose",
    provider="yahoo", origin="1970-01-01",
    compression="d", retclass="zoo")

bbva <- get.hist.quote(instrument="bbva.mc",
    start= Sys.Date() - 365*3,
    end= Sys.Date(), quote="AdjClose",
    provider="yahoo", origin="1970-01-01",
    compression="d", retclass="zoo")

ibex <- get.hist.quote(instrument="^IBEX",
    start= Sys.Date() - 365*3,
    end= Sys.Date(), quote="AdjClose",
    provider="yahoo", origin="1970-01-01",
    compression="d", retclass="zoo")

obito.botin <- as.Date("2014-09-10")

cotizaciones <- cbind(santander, bbva, ibex)
cotizaciones <- cotizaciones[!is.na(cotizaciones$AdjClose.ibex)]

Con lo anterior, he bajado las cotizaciones diarias de las acciones del Banco de Santander, las del BBVA y la del IBEX 35 durante los últimos tres años. Eso deja la fecha de la muerte del Sr. Botín, aproximadamente, en la mitad.

Ahora caRtociudad encuentra información administrativa relativa a un punto

R

Y lo hace así:

library(caRtociudad)
get_cartociudad_location_info(40.473219,-3.7227241, year = 2015)
# $seccion
# [1] "2807908148"
#
# $distrito
# [1] "2807908"
#
# $provincia
# [1] "Madrid"
#
# $municipio
# [1] "Madrid"

Esto da respuesta a una pregunta de Rubén.

La función es en su mayor parte (salvo algunos retoques más estéticos que otra cosa míos) de Luz Frías, que hizo omiso caso de la inexistente docuentación del INE sobre su servicio de mapas y capturó directamente la petición que el portal de Cartociudad hace al servicio.