INDICACIONES: En wikipedia, debes recordar, hay una tabla que indica los votos de los congresistas electos en el 2016: https://es.wikipedia.org/wiki/Elecciones_parlamentarias_de_Perú_de_2016 Traiga esos datos, luego sólo quédese con las columnas “partido” y “votos” (las dos ultimas)
library(htmltab)
link="https://es.wikipedia.org/wiki/Elecciones_parlamentarias_de_Perú_de_2016"
path='//*[@id="mw-content-text"]/div/table[6]/tbody/tr/td/table/tbody'
elepar=htmltab(doc = link,which = path)
gsub función
elepar$`Votos`=gsub(",", " ", elepar$`Votos`)
Revisando los nombres:
names(elepar)
## [1] "Distrito Electoral" "Escaños" "Congresistas electos"
## [4] "Congresistas electos" "Partido" "Votos"
Mejorando nombres:
newNames=c("DistritoElectoral", "Escaños", "Congresistaselectos", "Congresistaselectos", "Partido", "Votos")
names(elepar)=newNames
Revisando tipo de datos:
str(elepar)
## 'data.frame': 130 obs. of 6 variables:
## $ DistritoElectoral : chr "Amazonas(al 100,00%)" "Amazonas(al 100,00%)" "Áncash(al 100,00%)" "Áncash(al 100,00%)" ...
## $ Escaños : chr "2" "2" "5" "5" ...
## $ Congresistaselectos: chr "2" "1" "2" "1" ...
## $ Congresistaselectos: chr "Marita Herrera Arévalo" "Miguel Antonio Castro Grández" "Eloy Ricardo Narváez Soto" "María Elena Foronda Farro" ...
## $ Partido : chr "Fuerza Popular" "Fuerza Popular" "Alianza para el Progreso" "Frente Amplio" ...
## $ Votos : chr "15 312" "12 939" "20 941" "9 094" ...
Mejorando datos con problemas de formato:
Evitando presencia de espacios en blanco:
elepar[,]=lapply(elepar [,],trimws,whitespace = "[\\h\\v]")
Conviertiendo en variable categórica nominal:
elepar[, c(1,4,5)]= lapply(elepar[,c(1,4,5)], as.factor)
Convirtiendo a variable numérica
elepar[,-c(2,6)]=lapply(elepar[,-c(2,6)],as.numeric)
Explorando valores perdidos:
elepar[!complete.cases(elepar),]
## [1] DistritoElectoral Escaños Congresistaselectos
## [4] Congresistaselectos Partido Votos
## <0 rows> (or 0-length row.names)
eliminando espacios-
elepar[,]=lapply(elepar[,],trimws,whitespace = "[\\h\\v]")
Observando cómo quedó…
str(elepar)
## 'data.frame': 130 obs. of 6 variables:
## $ DistritoElectoral : chr "1" "1" "2" "2" ...
## $ Escaños : chr "2" "2" "5" "5" ...
## $ Congresistaselectos: chr "2" "1" "2" "1" ...
## $ Congresistaselectos: chr "87" "93" "31" "80" ...
## $ Partido : chr "5" "5" "2" "4" ...
## $ Votos : chr "15 312" "12 939" "20 941" "9 094" ...