library(stringr)
library(rvest)
library(ggplot2)
Obtención de la página web
# se leen los datos de la página de interés usando read_html
dirPag<-'https://es.wikipedia.org/wiki/Anexo:Episodios_de_Los_Simpson'
pag<- read_html(dirPag,encoding = 'UTF-8')
Obtención partes de la página
tablasPag<- html_table(pag,fill=TRUE)
length(tablasPag)
## [1] 25
Selección de estructura con los datos de interés
# obtener la tabla de interés, en este caso es la #3
datosFranq<- tablasPag[[2]]
head(datosFranq)
## # A tibble: 6 × 8
## Temporada Temporada Episodios Episodios `Emisión original` `Emisión original`
## <chr> <chr> <chr> <chr> <chr> <chr>
## 1 "Temporad… Temporada Episodios Episodios Primera emisión Última emisión
## 2 "" 1 13 13 17 de diciembre d… 13 de mayo de 1990
## 3 "" 2 22 22 11 de octubre de … 11 de julio de 19…
## 4 "" 3 24 24 19 de septiembre … 27 de agosto de 1…
## 5 "" 4 22 22 24 de septiembre … 13 de mayo de 1993
## 6 "" 5 22 22 30 de septiembre … 19 de mayo de 1994
## # ℹ 2 more variables: `Audiencia promedio` <chr>, Posición <chr>
str(datosFranq)
## tibble [38 × 8] (S3: tbl_df/tbl/data.frame)
## $ Temporada : chr [1:38] "Temporada" "" "" "" ...
## $ Temporada : chr [1:38] "Temporada" "1" "2" "3" ...
## $ Episodios : chr [1:38] "Episodios" "13" "22" "24" ...
## $ Episodios : chr [1:38] "Episodios" "13" "22" "24" ...
## $ Emisión original : chr [1:38] "Primera emisión" "17 de diciembre de 1989" "11 de octubre de 1990" "19 de septiembre de 1991" ...
## $ Emisión original : chr [1:38] "Última emisión" "13 de mayo de 1990" "11 de julio de 1991" "27 de agosto de 1992" ...
## $ Audiencia promedio: chr [1:38] "Audiencia promedio" "13.4" "12.2" "12.0" ...
## $ Posición : chr [1:38] "Posición" "30[3]" "38[4]" "33[5]" ...
Selección de datos de interés
# Elegir las columnas de interés: Franchise, Year of inception, Total Revenue
# y Revenue breakdown. La tabla ya está ordenada por Total Revenue por lo que
# se descarta la columna Number
datosFranq<-datosFranq[,2:3]
colnames(datosFranq)<-c('Temporada','Episodio')
head(datosFranq)
## # A tibble: 6 × 2
## Temporada Episodio
## <chr> <chr>
## 1 Temporada Episodios
## 2 1 13
## 3 2 22
## 4 3 24
## 5 4 22
## 6 5 22
Proceso de limpieza de los datos
# Eliminar filas con NA
datosFranq <- datosFranq[complete.cases(datosFranq), ]
# Ver los resultados
print(datosFranq)
## # A tibble: 38 × 2
## Temporada Episodio
## <chr> <chr>
## 1 Temporada Episodios
## 2 1 13
## 3 2 22
## 4 3 24
## 5 4 22
## 6 5 22
## 7 6 25
## 8 7 25
## 9 8 25
## 10 9 25
## # ℹ 28 more rows
Gráfico de barras con el total de episodios por temporada.
ggplot(datosFranq, aes(x = Temporada, y = Episodio)) +
geom_bar(stat = "identity", alpha = 0.8) +
labs(title = "Episodios por Temporada de Los Simpson",
x = "Temporada",
y = "Número de Episodios") +
theme_minimal() +
theme(plot.title = element_text(hjust = 0.5, face = "bold"),
axis.text.x = element_text(angle = 45, hjust = 1),
legend.position = "none")
