R

Cómo ir de Regumiel de la Sierra a Montejo de la Vega de la Serrezuela

R

Pues así:

  • Continúe por CALLE SAN JUAN DE RABANERA
  • Gire justo a la izquierda por CALLE DIPUTACION
  • Gire justo a la derecha por CALLE CABALLEROS
  • Gire ligeramente a la izquierda por PLAZA RAMON Y CAJAL
  • Gire a la izquierda por PLAZA MARIANO GRANADOS
  • Gire a la izquierda por PASEO ESPOLON (EL)
  • Gire ligeramente a la izquierda por AVENIDA VALLADOLID
  • Gire ligeramente a la izquierda por N-122
  • Continúe por A-11
  • Continúe por N-122
  • Gire ligeramente a la izquierda por CARRETERA SIN NOMBRE
  • Continúe por N-122
  • Gire a la izquierda por BU-924
  • Continúe por N-122
  • Continúe por BU-930
  • Gire a la derecha por BU-940
  • Continúe por CALLE FELIPE GARCIA
  • Continúe por BU-940
  • Gire ligeramente a la derecha por BU-932
  • Gire a la izquierda por CALLE PAJARES
  • Continúe por BU-V-9321
  • Continúe por SG-V-9321
  • Continúe por road
  • Continúe por SG-V-9321
  • Gire a la derecha por CALLE BAÑUELOS

O al menos, eso dice la novísima función caRtociudad::get_cartociudad_route. Que, además (y además de otras cosas) te dice que, en coche, tardarías 6969024… ¿milisegundos?

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!

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.

¿Quieres aprender R? ¡Matricúlate en mi curso en KSchool!

Si quieres aprender R, bien puedes matricularte en el curso que voy a impartir en KSchool. Es un programa de iniciación a R centrado en aquellos aspectos de R que más usan en la práctica diaria quienes trabajan con datos (y no son estadísticos duros). ¡Y ya vamos por la tercera edición!

Tendrá lugar durante el mes de junio (y un poco de julio). Son diez sesiones de tres horas. Los detalles están aquí.

Clústers de trayectorias con la distancia de Fréchet

R

Los viejos del lugar recordarán esto, donde agrupo trayectorias usando k-medias a pelo.

El paquete kmlShape usa la distancia de Fréchet para hacer algo parecido: buscar trayectorias geométricamente similares.

El código es

    library(kmlShape)
    library(tseries)
    library(zoo)
    library(XML)
    library(reshape)
    library(ggplot2)

    foo  <- function(
      simbolo, final = Sys.time(),
      profundidad = 30 * 24 * 3600) {
      precios <- get.hist.quote(
        instrument= simbolo,
        start = final - profundidad,
        end = final, quote=c("AdjClose"),
        provider="yahoo", origin="1970-01-01",
        compression="d", retclass="zoo")
      colnames(precios) <- simbolo
      return(precios)
    }

    # lista de símbolos del ibex

    tmp <- readHTMLTable("http://finance.yahoo.com/q/cp?s=%5EIBEX+Components")[[5]]
    tmp <- as.character(tmp$V1[-(1:6)])

    ibex <- do.call(merge,
      sapply(simbolos, foo, simplify = F))

    ibex.scaled <- data.frame(t(scale(ibex)))
    tmp <- cldsWide(ibex.scaled)

    res <- kmlShape(tmp, 4, toPlot = "none")

    tmp <- data.frame(
      id = rownames(ibex.scaled),
      cluster = res@clusters, ibex.scaled)

    tmp <- melt(tmp, id.vars = c("id", "cluster"))
    tmp$fecha <- as.Date(tmp$variable, "X%Y.%m.%d")

    ggplot(tmp, aes(x=fecha, y=value, group=id)) +
      geom_line() + facet_wrap(~cluster)

y el resultado,

¿Un libro recomendable de estadística básica?

Me piden bibliografía para unos cursos de ciencia de datos. En particular, de estadística básica. Un texto que reúna los conceptos fundamentales de la cosa para quienes o no los aprendieron en su día o los olvidaron por el camino. Tiene que cumplir algunos requisitos mínimos:

  • Que presente los gráficos estadísticos básicos y que no estén construidos con Excel (en 3D).
  • Que, a lo más, incluya un único gráfico de tarta.
  • Que no sea muy pesado matemáticamente.
  • Que sea breve, pero no demasiado.
  • Que esté accesible, idealmente en internet, gratuita y legalmente.

Finalmente, si está escrito escrito en español y usa R, mejor aún.