library(readxl)
library(dplyr)
## 
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
library(readr)
library(rvest)
## 
## Attaching package: 'rvest'
## The following object is masked from 'package:readr':
## 
##     guess_encoding
library(httr)
library(xml2)

Pagina web:

url <- "https://es.wikipedia.org/wiki/Elecciones_municipales_de_Lima_de_2022#Resultados_por_distrito"  # Reemplaza con la URL de la página que deseas scrapear
webpage <- read_html(url)
# Cargar los paquetes
library(rvest)
library(dplyr)

# Definir la URL
url <- "https://es.wikipedia.org/wiki/Elecciones_municipales_de_Lima_de_2022#Resultados_por_distrito"  # Reemplaza con la URL de la página que deseas scrapear

# Leer la página web
webpage <- read_html(url)

# Extraer todas las tablas
tablas <- webpage %>%
  html_nodes("table")

# Seleccionar la segunda tabla (ajusta el índice según la posición de la tabla)
tabla_deseada <- tablas[10] %>%
  html_table()

# Convertir la tabla a un dataframe
datos <- as.data.frame(tabla_deseada)
# Seleccionar las columnas necesarias
# Nota: Ajusta los nombres de las columnas según corresponda
# Asegúrate de que los nombres de las columnas coincidan exactamente con los de la tabla extraída

datos_limpios <- datos %>%
  select(Distrito, RP_porcentaje = `RP.1`, PP_porcentaje = `PP.1`, SP_porcentaje = `SP.1`)

# Ver los primeros registros para verificar
head(datos_limpios)
##   Distrito RP_porcentaje PP_porcentaje SP_porcentaje
## 1 Distrito                                          
## 2 Distrito             %             %             %
## 3    Ancón         13.28         33.27         21.35
## 4      Ate         17.49         29.99         15.87
## 5 Barranco         36.92         18.34         20.37
## 6    Breña         31.15         25.61         19.23
datos_limpios <- datos_limpios %>%
  slice(-1, -2, -46)

# Ver los primeros registros para verificar
head(datos_limpios)
##     Distrito RP_porcentaje PP_porcentaje SP_porcentaje
## 1      Ancón         13.28         33.27         21.35
## 2        Ate         17.49         29.99         15.87
## 3   Barranco         36.92         18.34         20.37
## 4      Breña         31.15         25.61         19.23
## 5 Carabayllo         19.24         27.82         21.12
## 6 Chaclacayo         28.42         22.74         18.78
# Leer los datos de denuncias
denuncias <- read.csv("C:/Users/Windows 10/Downloads/Lima2022.xlsx - data.csv")

# Leer los datos de residuos
residuos <- read_excel("residuosPeru (1).xlsx")
## New names:
## • `` -> `...2`
## • `` -> `...3`
## • `` -> `...4`
## • `` -> `...5`
## • `` -> `...6`
## • `` -> `...7`
## • `` -> `...8`
## • `` -> `...9`
## • `` -> `...10`
## • `` -> `...11`
## • `` -> `...12`
## • `` -> `...13`
## • `` -> `...14`
## • `` -> `...15`
# Leer los resultados electorales
resultados <- read_csv("resultados_electorales.csv")
## Rows: 43 Columns: 4
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ","
## chr (1): Distrito
## dbl (3): RP_porcentaje, PP_porcentaje, SP_porcentaje
## 
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.

Denuncias:

denuncias <- denuncias %>%
  slice(-1, -2, -3, -4, -48, -49, -50, -51, -52, -53,-54, -55, -56,-57, -58, -59,-60)
denuncias$X <- NULL

Residuos:

Unir tablas: