R

Vídeo introducción a bookdown

Una introducción a bookdown con R y RStudio para la creación de libros y contenido web. Esta entrada sienta las bases de un proyecto que estoy llevando a cabo, la creación de mi propio libro de introducción a la estadística.

Además, debido a la sencillez de uso y como interacciona con R o Python creo que bookdown puede ser un buen sustituto a nuestras aburridas presentaciones. Desde una serie de notebooks podemos crear nuestas historias y nuestros alumnos pueden interaccionar con ellas empleando el código de ejemplo que usamos en ellas.

Representar polígonos de Voronoi dentro de un polígono

No es la primera vez que traigo al blog la realización de polígonos de Voronoi pero hoy la entrada está más orientada a la representación gráfica con #rstats y ggplot. En este caso deseamos crear polígonos de Voronoi en función del centro geográfico de las provincias españolas.

Origen de los datos

El pasado 25 de noviembre el Grupo de Usuarios de R de Madrid trajo la presentación de @dieghernan sobre la creación de mapas con la librería mapSpain que será la que nos permita crear mapas de españa a distintos niveles, entre ellos mapas a nivel provincial mediante un código en R que no puede ser más sencillo:

Trabajar con los datos de Power BI desde R para hacer un modelo de regresión lineal

Vídeo dedicado al uso de la librería de R pbix. Responde a una duda planteada por un lector que deseaba realizar un modelo de regresión lineal con Power BI. Imagino que se podrá programar en DAX, pero es mejor llevar los datos, las tablas necesarias, de Power BI a un software específico para poder realizar el modelo como es Python o R en este caso.

Desde Power BI podemos realizar scripts de R pero recomiendo este primer paso para crear y validar el modelo, posteriormente podemos poner el programa de R con nuestra regresión lineal directamente en Power BI. El código empleado es:

Rstats + Shiny + Leaftlet -> Mapas interactivos muy sencillos

Entrada en la que os mostraré como hacer un mapa con Leaflet en R que además añadimos a un Shiny para poder filtrar datos de forma interactiva. Ya mostramos en el blog como crear mapas marcando coordenadas con Leaflet y R de forma muy sencilla y hoy damos una vuelta de tuerca a aquella entrada, las coordenadas que deseamos representar tienen además, algún factor por el que hay especial interés en realizar un filtrado del mapa. Para ilustrar el ejemplo nos vamos a ir al Centro de descargas del Centro Nacional de Información Geográfica y nos bajamos del servidor los datos municipales en concreto a Nomenclátor Geográfico de Municipios y Entidades de Población, descargamos el archivo y tenemos un zip que contiene un csv llamado MUNICIPIOS.CSV

Trabajando con R y Julia desde RStudio

Muchas veces pienso que no es R es RStudio. Por eso hoy traigo unas líneas para ilustrar el uso de Julia en R markdown y poder elaborar vuestros documentos y vuestra documentación con RStudio. Todo el trabajo se articula entorno a la librería JuliaCall y se fundamenta en el uso de markdown donde usaremos indistintamente R o Julia. Todo comienza con un chunk de R:

```{r}
#install.packages("JuliaCall")

library(JuliaCall)
julia_setup()
 

Instalamos el paquete y “suponemos” que hemos instalado Julia, de este modo, nada más cargar JuliaCall pondremos julia_setup() y ya dispondremos de nuestro entorno de Julia. Una vez ejecutados estos pasos en R ya podemos trabajar con algún chunk de Julia y con código conocido:

```r
```{julia}
using CSV
using DataFrames
using HTTP

url=https://raw.githubusercontent.com/mwaskom/seaborn-data/master/penguins.csv
res = HTTP.get(url)
penguins = DataFrame(CSV.File(res.body))
 

Destacar que no tenemos una integración en RStudio tan chula como la que hay con reticulate donde disponemos del entorno Python y del entorno R para navegar por nuestros objetos. Esta situación hace que el ahora escribiente (por ejemplo) realice el trabajo en Visual Code y posteriormente lleve esos códigos a Markdown. Si visitáis la ayuda de JuliaCall podréis ver todas las posibilidades que tenemos para mover objetos y funciones, para ilustrar este paso de objetos de un entorno a otro os traigo un pase de un data frame de R a Julia:

```r
```{r}
data("iris")
iris <- julia_assign("iris", iris)
 

La función julia_assign es la que nos permite mover data frames y ya podemos usarlo en Julia:

```r
```{julia}
using StatsPlots
boxplot(iris.Sepal_Width)
 

Y por supuesto el camino inverso, pasar un data frame de Julia a R:

```r
```{r}
penguins <- julia_eval("penguins")
 

Aquellos que usamos RStudio para casi todo ya no tenemos escusa para emplear Julia, aunque veremos que pasa con Visual Code.

Obtener las coordenadas de una dirección con R y la API de Google Earth

Obtener coordenadas desde la API de Google Maps a partir de una dirección consiste en realizar la petición a la API y obtener un json pero tenemos la suerte de contar con R y ese proceso le podemos hacer de forma más sencilla e incluso le podemos tabular. En realidad son 4 líneas de código pero es posible que a alguien le sean de utilidad. Lo primero es disponer de un proyecto en la Google Cloud Plattform si ya lo tenemos lo que necesitamos es autorizar a este proyecto a acceder a la API de Google Maps, para ello yo he usado este enlace y he habilitado la Geocoding API, la que vamos a usar para la consulta de la dirección.

Leaflet con R. Apuntes de mapas de coordenadas

Estoy desarrollando cosas muy interesantes con leaftlet en R y quería poner unos breves apuntes por si a alguien le sirvieran. En Stackoverflow y otras webs al uso tenéis mucha más ayuda y código de mayor interés pero en pocas líneas espero sentar las bases de uso de leaflet. Para ilustrar el ejemplo me he descargado unos datos de datos.gob con las coordenadas de los parques de bomberos de Madrid Capital, la idea es representar estos puntos en un mapa. Lo primero es descargar los datos y ponerlos en una ubicación de nuestro equipo:

Transponer data frames con R. De filas a columnas y de columnas a filas

Entrada para recordar como transponer data frames con R, como pasar de n filas a n columnas manteniendo campos identificativos y como pasar de columnas a filas y crear un campo identificativo. Siento que últimamente más que un blog tengo un cuaderno de apuntes pero si estos apuntes pueden ayudar a alguien mejor. En realidad la entrada es un ejemplo ilustrativo de las funciones de tidy pivot_wider y pivot_longer.

Pasar de filas a columnas

#install.packages("palmerpenguins")

library(palmerpenguins)

agregado_especies <- penguins %>% group_by(species, year) %>%
summarise(bill_depth_mm=mean(bill_depth_mm, na.rm=T)) %>%
pivot_wider(names_from = year, values_from = bill_depth_mm, names_prefix = “ANIO_”)

Incluir subplot en mapa con ggplot

Se ha trabajado un mapa de España con ggplot al que podemos añadir subplot en función de unas coordenadas, en este caso es un mapa de España que incluye gráficos de líneas para cada Comunidad Autónoma, vamos a representar el exceso de mortalidad que está suponiendo la pandemia por COVID, un dato que se puede seguir con MoMo del ISCIII . Los que seguidores el blog ya conocen una entrada en la que se escribió sobre la inclusión de pie chart en mapas con R esta entrada supone ir un paso más allá.

Mapas estáticos de Perú con R y Python a nivel de Distrito

Petición de un lector de un código de ejemplo para hacer mapas de Perú con R y con Python, perfectamente reproducible si seguimos algunas entradas del blog pero que, de este modo, quedan resumidos en un solo sitio. En este caso se va a emplear un notebook desde RStudio donde tendremos chunks de R y Python en función de lo que necesitemos. Podéis copiar y pegar directamente, debe salir lo mismo.

Corrección ortográfica en RStudio

Si os estáis acostumbrando a usar RStudio como editor de texto y no confiáis en vuestras capacidades ortográficas, sabed que podéis hacer una revisión ortográfica de vuestro documento desde RStudio. Es muy sencillo, lo primero es Tools –> Global Options y luego te vas a spelling (ortografía) y allí eliges el diccionario que quieres usar, si no aparece el tuyo lo puedes descargar o actualizar:

Ahora en los documentos de R que estéis editando si pulsáis F7 podréis realizar una revisión ortográfica del texto.

Mi curriculum con RMarkdown y pagedown

Me he puesto a actualizar mi curriculum y a la vez estoy aprendiendo markdown y en ese proceso Jose Luis Cañadas me dijo «usa pagedown». No era yo fan de Rmarkdown, pero me estoy reconvirtiendo. Me está pasando con markdown algo parecido a lo que me pasó con el picante, no me gustaba hasta que lo probé y desde entonces me encanta. ¿Por qué lo probé? Porque había decidido tomarme un tiempo sabático para elaborar una serie de cursos, webminar y actualizar la web que son 12 años sin modificaciones. Tras 3 meses sabáticos estoy harto de no trabajar , son 25 años seguidos trabajando, 20 gestionando datos, y otros 5 en los que hice de todo (hasta servir en la Armada). No soy capaz de estar sin trabajar, el primer paso es elaborar un resumen de mi vida profesional y dar un nuevo formato porque llevo con el mismo unos 12 años.

Evaluando la capacidad predictiva de mi modelo tweedie

Cuando tenemos que evaluar el comportamiento de un modelo de clasificación binomial empleamos sensibilidad, especificidad,… ya he hablado sobre ese tema aunque volveré sobre ello. Sin embargo, si nuestro modelo estima un valor es posible que no tengamos tan claro como está funcionando su capacidad predictiva. Lo que traigo hoy es un análisis muy básico pero que entienden muy bien aquellas personas que no tienen grandes conocimientos en ciencia de datos, además es una continuación de la entrada en la que se ilustraba un ejemplo de uso de los modelos tweedie.