Archivo del Autor: Álvaro Hernández

Tablas en pdf con RMarkdown y Knitr

Para los que suelen trabajar con archivos Rmarkdown desde RStudio, hoy traemos tres funciones para generar tablas en un documento pdf: kable(), pandoc.table() y xtable(); de los paquetes: knitr, pander y xtable, respectivamente.

Pasamos a ver cada una por separado, generando las tablas con las opciones habituales en cada caso para que puedan servir de plantilla base.

Función kable(), del paquete knitr

Yo diría que la más sencilla de utilizar. Por defecto hace unas tablas muy bonitas. Tiene pocas opciones, así que, por un lado es muy fácil de aprender a usar pero, por otro, si queremos algo más concreto puede quedarse corta. Tal y como se afirma en si descripción: “No es su intención reemplazar a ningún otro paquete de R para hacer tablas”.

Una característica a destacar es que en un pdf, si quedara muy larga la tabla para una página, por defecto kable() la divide en dos y la continúa en la siguiente.

# install.packages("knitr")
library(knitr)
data("airquality")
df <- head(airquality, 15)
kable( df , caption = "BBDD `airquality` con `kable()`"
       , align = c('l', 'c', 'r', 'r', 'c', 'l')
       , col.names = c("Ozono","Solar.R","Viento","Temp","Mes","Día")
       , row.names = TRUE
       , digits = 1
       , format.args = list( decimal.mark = ",")
      )

tabla-kable

Función pandoc.table(), del paquete pander

Tiene bastantes opciones. Características a destacar: que también divide las tablas como kable() si son muy largas, y además, también lo hace si son muy anchas. En este último caso, te parte la tabla automáticamente y te la muestra a continuación con las columnas que no hubieran cabido. Importante: no hay que olvidar poner results = 'asis' en las opciones del chunk.

# install.packages("pander")
library(pander)
pandoc.table( df
              , caption = "BBDD `airquality` con `pandoc.table()`"
              , justify = 'lcrrcl'
              , round = 2
              , decimal.mark = ","
              , missing = NA
              , emphasize.rownames = FALSE
              , split.cells = 5
              , emphasize.strong.cells =
                  which(df > 12 & df == df$Wind, arr.ind = TRUE)
             )

tabla-pandoctable

Función xtable(), del paquete xtable

Potencia LaTeX. Lo mejor es utilizarla junto con print(), ya que, se añaden más opciones (ver print.xtable()). Importante: igual que con pandoc.table() hay que poner results = 'asis'.

# install.packages("xtable")
library(xtable)
print(xtable( df
             , caption = "BBDD \\texttt{airquality} con
                          \\texttt{xtable()}"
             , align = 'clcrrcp{2cm}'
             , digits = 2
             , label = "tab:label"
            )
      , comment = FALSE
      , table.placement = "h!"
      , caption.placement = "top"
      , NA.string = "NA"
     )

tabla-xtable

Conclusiones

En resumen, para una tabla sencilla en Rmd yo personalmente utilizo la función kable(): no hay que instalar ningún paquete adicional a knitr y la sintaxis se aprende muy rápido. Solo cuando quiero hacer alguna tabla más concreta (o cuando es muy ancha) opto por pandoc.table(), que te da muchas opciones sin perder la relativa sencillez. Y finalmente, en contadas situaciones, cuando he de hacer algo muy muy concreto en el que tengo que tirar de LaTeX utilizo xtable().

Cada cual que utilice la que más le guste, o como yo, la que más le convenga en cada caso.

Referencias y enlaces

Consumidores y Big Data

El pasado 31 de enero podíamos leer en Diagonal: Big Data para rastrear al consumidor.

Big Data

[…] cada minuto se realizan cuatro millones de búsquedas en Google, se cruzan 204 millones de correos electrónicos, se suben 400 horas de vídeo a YouTube o se publican 2,5 millones de contenidos en Facebook. Y esta red de 3.400 millones de personas, el 45% de la población mundial, incrementa año tras año su tráfico de información casi en un 30%, calcula Cisco VNI.

Toda esa información está ahí y ahora se habla de Big Data porque, efectivamente, son muchos datos, pero sobre todo, porque con ellos vienen nuevas formas de entender su gestión y uso.

[…] De momento, sólo las tarjetas electrónicas, el teléfono móvil y algunos pocos wearables (dispositivos electrónicos incorporados a la ropa o complementos) están funcionando como rastreadores de nuestros movimientos, pero la tendencia es innegable. Este mismo año, señala Teresa García, la mitad del tráfico de internet se realizará a través de conexiones wifi, “pudiendo controlar qué ocurre en las tiendas, las veces que se acude a ellas, el tiempo de permanencia, la reacción ante un descuento o ante el rediseño de un espacio”.

El Big Data, por tanto, vuelve a alimentar el sueño de predecir el comportamiento del consumidor en las distintas fases del consumo. Poco se habla todavía de los impactos negativos que esto podría tener para nuestros derechos y nuestra capacidad de elección, pero nos los vamos imaginando.

Por eso desde este servicio intentamos utilizar el buscador que no rastrea DuckDuckGo como alternativa a Google.

Alternativa a Skype: Jitsi y Jitsi Meet

A partir de 2013, gracias a Edward Snowden, se revelaba la vigilancia masiva que se viene ejerciendo sobre la población mundial. A partir de entonces, algunos empezamos a poner más énfasis en utilizar siempre software libre y empezamos a preocuparnos más en la seguridad y la privacidad, buscando alternativas libres a las aplicaciones que utilizamos a diario.

Desde 2011 Skype es propiedad de Microsoft, que la compró por 8500 millones de dólares (ahí es nada), y ya sabemos cómo se las gastan los de Redmond. Así que hoy les presentamos una alternativa libre y de código abierto a Skype: Jitsi.

Jitsi: aplicación de escritorio

Jitsi es una aplicación de videoconferencia, VoIP y mensajería instantánea compatible con los sistemas operativos Windows, Linux y Mac OS X. Funciona con las cuentas de diferentes servicios como SIP, XMPP, Facebook, Google Talk, ICQ, ippi, iptel.org, AIM, MSN…, y también da la opción de crearse una cuenta en el servicio propio XMPP jit.si.

Las características completas se pueden ver en su página web o en su página de Wikipedia. Para saber más recomendamos leer la reseña que se hizo hace unos años en el blog La Mirada del Replicante

Jitsi Meet: aplicación web

Conferencia con Jitsi Meet

Además de poder instalar Jitsi como aplicación en nuestro SO también podemos utilizarlo sin necesidad de instalar nada, directamente desde el navegador. Solo hay que abrir la dirección http://meet.jit.si/ en el navegador, completarla con la ruta que queramos y compartirla con quien queramos. Fácil, sencillo y para toda la familia.

Una muy buena reseña sobre este servicio se puede leer en hipertextual.

Linux Everywhere

Linux hasta en el parque.

Aunque parezca mentira, que no lo parece, nos encontramos con el sistema operativo GNU/Linux en casi cualquier parte. Desde el sistema para móviles Android, pasando por la mayoría de servidores del mundo, hasta el software de algunos frigoríficos y coches inteligentes.

“Sea conocido o no, Linux está entre nosotros”, aquella sencilla afición de un finlandés nos podría acompañar en muchos aspectos de nuestra vida de una forma que otros sistemas mayoritarios no pueden. “Aunque no lo sepamos, Linux está instalado en nuestro día a día.”

De esta manera, en “esta entrada del blog malavida” dan un repaso de algunos de los lugares en donde nos podemos encontrar con el sistema del pingüino en un día cualquiera.

Leer entrada completa.

Abierto es mejor que cerrado

Always Keep it OPEN

De lectura casi obligada recogemos aquí una entrada del 12 de diciembre del autor Enrique Dans: “Efectivamente, abierto es mejor que cerrado”.

En ella, el autor hace un pequeño repaso de la evolución de los modelos de código abierto y cerrado. Desde Steve Ballmer (CEO de Microsoft hasta febrero de 2014) con su “Linux is a cancer”, hasta la liberación del código fuente del lenguaje Swift por parte Apple o del entorno .NET por parte de la propia Microsoft.

Destacamos especialmente:

“Lo que hace una década resultaba casi anatema afirmar en el mundo de los negocios, que abierto es siempre mejor que cerrado, hoy parece casi una obviedad, una verdad prácticamente absoluta.

Un buen artículo en Venture Beat, “It’s actually open source software that’s eating the world”, demuestra con números la impresionante evolución de la popularidad y el interés en torno al software de código abierto a lo largo de la última década, y concluye prácticamente que la discusión ha terminado, que los modelos abiertos son ya intrínsecamente superiores a los modelos propietarios”.

Como cierra el autor, “Tiempos de cambio”.

Leer entrada completa del blog de Enrique Dans.