UNMSM

QUINTA PRÁCTICA CALIFICADA BIVARIADA

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)

  1. Cargando y pre procesando la data:
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" ...