Esta semana voy a enseñar cómo hacer el waffle plot de las votaciones al Mejor Defensor y también cómo construir la tabla Con/Sin, comparando los partidos que ha jugado o no ha jugado Tavares. Es una tabla pequeña, pero la obtención de los datos no lo es en absoluto, y me parece interesante mostrar todo el proceso.
Empiezo por el pimero
La página de las votaciones contiene varias tablas: las que se usan en las imágenes y alguna más. Lo primero es identificar cuáles están disponibles para poder extraer justo la que nos interesa.


Cargamos las librerías necesarias, mi tema personalizado y, desde el enlace de la página, extraemos todas las tablas. En lugar de darle a “Inspeccionar” y mirar cómo se llama cada una, en este caso hay una forma más sencilla: usar dos funciones del paquete rvest. Una sirve para leer el HTML de la página y la otra, para que busque directamente todas las tablas que contiene.
library(tidyverse)
library(rvest)
library(janitor)
library(waffle)
library(extrafont)
theme_ivo <- function () {
theme_minimal(base_size=9, base_family="Oswald") %+replace%
theme(
panel.grid.minor = element_blank(),
plot.background = element_rect(fill = 'white', color = "white")
)
}
"https://www.acb.com/articulo/ver/511155-edy-tavares-mejor-defensor-de-la-liga-endesa-202425.html" %>% #enlace de la pagina
read_html() %>%
html_table() Y obtenemos esto
Ahora ya sabemos que las tablas que nos interesan son la [[1]] y la [[2]], así que preparamos el código para seleccionarlas por separado:
data <- "https://www.acb.com/articulo/ver/511155-edy-tavares-mejor-defensor-de-la-liga-endesa-202425.html" %>%
read_html() %>%
html_table() %>%
.[[1]] %>% #primera tabla
clean_names() #limpiamos los nombres de columna
data_points <- "https://www.acb.com/articulo/ver/511155-edy-tavares-mejor-defensor-de-la-liga-endesa-202425.html" %>%
read_html() %>%
html_table() %>%
.[[2]] %>% #segunda tabla
clean_names() %>%
#eliminamos lo que esta entre parentesis y los parentesis
mutate( jugador =str_squish(str_remove_all(jugador, " \\(.*\\)"))) %>%
select(-posicion) #quitamos la columna posiciónEstas son las tablas listas para trabajar con ellas
Editamos la primera tabla para poder unirla con la segunda.
Continúa leyendo con una prueba gratuita de 7 días
Suscríbete a The Clean Shot para seguir leyendo este post y obtener 7 días de acceso gratis al archivo completo de posts.






