Compartir y colaborar desde el cruce entre las ciencias de datos y sociales

Diplomado de Ciencia de Datos para Ciencias Sociales y Humanidades

Bastián Olea Herrera

Temario

  • Mi experiencia con el análisis de datos desde la sociología
  • Revisar algunos de mis proyectos de análisis de datos con R
  • Principios para guiarnos:
  1. Crear
  2. Diferenciarse
  3. Compartir


  • Consejos prácticos para lograrlo

Trayectoria

Portafolio

Aplicaciones desarrolladas en R y {shiny} centradas en visualización de datos públicos

Aplicaciones

Página web para presentar mis aplicaciones.

Página creada en R con Quarto y hosteada en GitHub Pages.

Sitio web

https://bastianolea.rbind.io

Sitio web sobre contenido de R, principalmente guías, tutoriales y recomendaciones

Blog de R

https://bastianolea.rbind.io

Blog donde puedo compartir cosas que aprendo, consejos para los demás, y guías para invitar a que más gente use estas herramientas.

Repositorio de datos

  • Otra página web donde voy manteniendo un repositorio de datos sociales que he usado para otros proyectos.
  • La idea es recolectar todo en un mismo lugar para facilitar el acceso a datos.
  • Cada proyecto contiene datos limpios/procesados, código abierto para procesar y explorar los datos, y ejemplos de visualización asociados.

Esta página también fue creada en R con Quarto, principalmente con una tabla hecha con el paquete {gt}, y hosteada en GitHub Pages.

Creación

Creación

  • Desarrollar temas de su experticia, campo o disciplina 🔬
  • Abordar temas de relevancia social ✊🏼
  • Hacer públicos estudios o investigaciones académicas 📝
  • Explorar repositorios de datos públicos
  • Reutilización de datos públicos ♻️
  • Participar de TidyTuesday 🌎
  • Latin R, presentar trabajos hasta el 25 de agosto

Siempre va a haber gente interesada! ☺️

Ejemplos

Portal de reutilización del sitio de Datos Abiertos del Gobierno de Chile

Diferenciación

Diferenciación

  • Abordar temáticas de forma inclusiva a todo público
  • Preocuparse por la apariencia de los productos!
  • Gráficos {ggplot2} con temas de colores con {thematic} y tipografías con {showtext}
  • Aplicaciones {shiny} con temas de colores con {bslib}
  • Atención a las tipografías: pares tipográficos ️✒️💎
  • Selección de paletas de colores llamativas y con personalidad 💅🏼✨

Tipografías

Gráficos de {ggplot2} con tipografías personalizadas:

library(showtext)

font_add_google(name = "Montserrat") # descargar

# activar el uso de tipografías
showtext_auto()
showtext_opts(dpi = 300) # resolución para que se vean bien

# cambiar tipografía global
grafico +
  theme_classic(base_family = "Montserrat")

Colores

Gráficos {ggplot2} con temas de colores:

library(ggplot2)
library(thematic)

thematic::thematic_on(bg = "#222222",
                      fg = "white", 
                      accent = "#0CE3AC")

iris |> 
  ggplot() +
  aes(x = Sepal.Width) +
  geom_histogram()

Aplicaciones Shiny con temas de colores, incluyendo gráficos:

library(shiny)
library(thematic)

thematic_shiny()

ui <- page_fluid(
  theme = bs_theme(bg = color_fondo,
                   fg = color_texto,
                   primary = color_primario
  )
)


Recursos para encontrar colores:

Compartir

Compartir

Diagnóstico: estado actual de la internet 😕

  • Lugares para hacer comunidad: Bluesky, redes sociales
  • Participar de Stack Overflow
  • Comunidades de R, grupos RLadies
  • ¿Crear tu propia comunidad? 🐣

Crear

  • Crear repositorios en GitHub con {usethis} 📦
  • Archivos readme.md para documentar y ofrecer contexto
  • Subir código suelto a Gists de GitHub 🗒️
  • Compartir código en redes sociales 🤓
  • Herramientas para crear pantallazos 📸

Compartir códigos breves


GitHub Gists

Una forma rápida de subir pedazos de código para poder compartirlo

Pantallazos

Usa servicios online como carbon.now.sh o ray.so para crear imágenes con código

Crear un repositorio en GitHub

Crear un repositorio local para tu código:

install.packages("usethis")

usethis::use_git() # crear repositorio local


Configurar GitHub:

usethis::create_github_token() # crear token de tu cuenta
gitcreds::gitcreds_set() # guardar token para autorizar tu pc
usethis::use_git_config(user.name = "usuario", user.email = "correo")

Subir tu repositorio local a GitHub, creando un espejo de tu código en el repositorio remoto:

usethis::use_github() # subir repo local a github


Revisa el tutorial completo aquí!

Crear un archivo readme.md

Crea un archivo de texto Markdown (extensión .md) para explicar al mundo de qué se trata tu repositorio!

Titulares:

# Título 1
## Título 2
### Título 3, etc.

Estilos de texto:

**negrita**
*itálica* o _itálica_
<u>subrayado</u>
~~tachado~~
`código`

Imágenes:

![](mapache.jpeg)

En cierta forma es como una página web muy básica 🥺

Crear

Crear un lugar, volverse encontrable

Quarto

Crea documentos que mezclen texto, código y gráficos desde R.

Vista desde RStudio

Ejemplo de un reporte

Revisa el tutorial de Quarto aquí!

GitHub Pages

  1. Subir documento Quarto a un repositorio GitHub
  2. Crear un archivo _quarto.yml:
project:
  output-dir: docs
  1. Creamos un archivo vacío llamado .nojekyll
  2. Subir cambios del repositorio local al repositorio remoto en GitHub

GitHub Pages

  1. Entra a la pestaña Settings del repositorio remoto:

GitHub Pages

  1. Entra a Pages, elige la rama y elige /docs

Revisa el tutorial completo aquí!

Blog Quarto

  1. Crear un nuevo proyecto desde RStudio usando Quarto Blog:

  1. Listo! Se crea un blog Quarto, puedes agregar publicaciones en posts

Blog Quarto

Para subirlo a GitHub Pages es similar a las instrucciones anteriores:

  1. En _quarto.yml agregamos output-dir: docs debajo de project:.
  2. En el proyecto, creamos un nuevo archivo vacío que se llame .nojekyll
  3. Le damos Render al documento index.qmd o en la pestaña Terminal ejecutamos quarto render
  4. Creamos un repositorio git con usethis::use_git()
  5. Subimos el repositorio a GitHub con usethis::use_github()
  6. En GitHub, entramos a Settings, luego a Pages, y configuramos el repositorio para que genere la página desde /docs

Elige un tema desde la documentacion y aplícalo en _quarto.yml.

Revisa el tutorial completo aquí!

Blog Hugo

Hugo es una plataforma para crear blogs en base a Markdown y el lenguaje de programación Go. Gracias al tema Hugo Apéro se puede crear un blog elegante y funcional desde R en pocos pasos.

Instalar {blogdown} e instalar Hugo:

install.packages("blogdown")
blogdown::install_hugo()

Instrucciones detalladas disponibles en este blog.

Blog Hugo

Creamos el blog con la siguiente función:

library(blogdown)
new_site(theme = "hugo-apero/hugo-apero", 
         format = "toml",
         sample = FALSE,
         empty_dirs = TRUE)

Para ver el sitio ejecutamos blogdown::serve_site()

Tenemos la función blogdown::new_post() crear un nuevo post:

blogdown::new_post(title = "Mi primer post en Hugo", 
                   subdir = "blog/",
                   file = "blog/primero/index.md",
                   author = "Bastián Olea Herrera",
                   tags = c("ggplot2", "gráficos", "curiosidades")
)

Blog Hugo

Instrucciones para subir el blog a internet:

  1. Creamos un repositorio git con usethis::use_git()
  2. Subimos el repositorio a GitHub con usethis::use_github()
  3. Entrar a Netlify y el Projects, seleccionar Add new project
  4. Elegir el repositorio de GitHub que creamos, dejar todo como está y poner Deploy Site
  5. En config.toml, cambiar baseURL por la dirección del sitio subido (del paso anterior). Subir este cambio a GitHub.
  6. Revisar con blogdown::config_netlify() y luego blogdown::check_netlify()

Blog Hugo

Como Hugo usa Markdown y no Quarto, si queremos crear documentos .qmd que usen los resultados del código de R, debemos agregar lo siguiente al encabezado de cada post:

format:
  hugo-md:
  output-file: "index"
output-ext: "md"

Shiny

Para crear una aplicación Shiny, creamos un nuevo proyecto y elegimos Shiny Application.

Revisa un mini tutorial aquí.

Desde el mismo panel de RStudio puedes publicar tu aplicación a ShinyApps.io con el botón Publish.

Guía para subir tu app en este tutorial!

Consejos

  • Crea cosas que te sirvan, que te conecten, y que sean socialmente relevantes
  • Escribe bocetos ✍🏼
  • Escribe todo lo que aprendes! 📒
  • Trata de dar de vuelta lo que has recibido 💖

Gracias

Puedes escribirme cualquier duda o comentario por aquí