library(rio)
data1=import("Lima2022.xlsx")
## New names:
## • `` -> `...2`
library(rvest)

link = "https://es.wikipedia.org/wiki/Elecciones_municipales_de_Lima_de_2022"
path = '//*[@id="mw-content-text"]/div[1]/table[9]'
resultados <- read_html(link)%>%html_nodes(xpath = path)%>%html_table()%>% .[[1]]
head(resultados)
## # A tibble: 6 × 17
##   Distrito RP       RP     PP    PP    SP    SP    FE    FE    APP   APP   JP   
##   <chr>    <chr>    <chr>  <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr>
## 1 Distrito ""       ""     ""    ""    ""    ""    ""    ""    ""    ""    ""   
## 2 Distrito "V"      "%"    "V"   "%"   "V"   "%"   "V"   "%"   "V"   "%"   "V"  
## 3 Ancón    "3,725"  "13.2… "9,3… "33.… "5,9… "21.… "2,0… "7.2… "3,5… "12.… "1,6…
## 4 Ate      "57,374" "17.4… "98,… "29.… "52,… "15.… "27,… "8.5… "26,… "7.9… "25,…
## 5 Barranco "11,604" "36.9… "5,7… "18.… "6,4… "20.… "2,7… "8.8… "2,1… "6.9… "1,6…
## 6 Breña    "22,721" "31.1… "18,… "25.… "14,… "19.… "8,2… "11.… "2,4… "3.3… "3,8…
## # ℹ 5 more variables: JP <chr>, AvP <chr>, AvP <chr>, PL <chr>, PL <chr>
library(rio)
data2=import("residuosPeru.xlsx")
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
data2 = filter(data2,PROVINCIA == "LIMA" ) 
data2=data2[!duplicated(data2), ]
library(dplyr)
data2 = filter(data2,PERIODO == "2021" ) 
data2=data2[!duplicated(data2), ]
resultados$Distrito = toupper(resultados$Distrito)
table(resultados$Distrito)
## 
##                   ANCÓN                     ATE                BARRANCO 
##                       1                       1                       1 
##                   BREÑA              CARABAYLLO              CHACLACAYO 
##                       1                       1                       1 
##              CHORRILLOS             CIENEGUILLA                   COMAS 
##                       1                       1                       1 
##                DISTRITO             EL AGUSTINO           INDEPENDENCIA 
##                       2                       1                       1 
##             JESÚS MARÍA               LA MOLINA             LA VICTORIA 
##                       1                       1                       1 
##                    LIMA                   LINCE              LOS OLIVOS 
##                       1                       1                       1 
##      LURIGANCHO-CHOSICA                   LURÍN       MAGDALENA DEL MAR 
##                       1                       1                       1 
##              MIRAFLORES              PACHACÁMAC                PUCUSANA 
##                       1                       1                       1 
##            PUEBLO LIBRE           PUENTE PIEDRA           PUNTA HERMOSA 
##                       1                       1                       1 
##             PUNTA NEGRA                   RÍMAC             SAN BARTOLO 
##                       1                       1                       1 
##               SAN BORJA              SAN ISIDRO  SAN JUAN DE LURIGANCHO 
##                       1                       1                       1 
##  SAN JUAN DE MIRAFLORES                SAN LUIS    SAN MARTÍN DE PORRES 
##                       1                       1                       1 
##              SAN MIGUEL             SANTA ANITA     SANTA MARÍA DEL MAR 
##                       1                       1                       1 
##              SANTA ROSA       SANTIAGO DE SURCO               SURQUILLO 
##                       1                       1                       1 
##                   TOTAL       VILLA EL SALVADOR VILLA MARÍA DEL TRIUNFO 
##                       1                       1                       1
resultados <- resultados[-(1:2),]
 data1$Distrito<-gsub("^[0-9]+ ", "", data1$Distrito)
colnames(data2)[7] = "Distrito"
TOTAL = merge(data1, data2, by = "Distrito", all.x = TRUE, all.y = TRUE)
TOTAL = merge(TOTAL, resultados, by = "Distrito", all.x = TRUE, all.y = TRUE)
modelo1=formula(QRESIDUOS_NO_DOM~RP.1+Denuncias)
reg1=lm(modelo1,data=TOTAL)
summary(reg1)
## 
## Call:
## lm(formula = modelo1, data = TOTAL)
## 
## Residuals:
## ALL 33 residuals are 0: no residual degrees of freedom!
## 
## Coefficients: (32 not defined because of singularities)
##                 Estimate Std. Error t value Pr(>|t|)
## (Intercept)      5009.47        NaN     NaN      NaN
## RP.116.68       -4281.30        NaN     NaN      NaN
## RP.117.49       69208.75        NaN     NaN      NaN
## RP.117.99       39876.91        NaN     NaN      NaN
## RP.118.28       20769.45        NaN     NaN      NaN
## RP.118.49       16450.14        NaN     NaN      NaN
## RP.119.24       38235.41        NaN     NaN      NaN
## RP.119.37       65885.22        NaN     NaN      NaN
## RP.120.07      109794.44        NaN     NaN      NaN
## RP.120.65       15100.29        NaN     NaN      NaN
## RP.120.89       -1253.78        NaN     NaN      NaN
## RP.123.14       36818.28        NaN     NaN      NaN
## RP.123.58       34180.61        NaN     NaN      NaN
## RP.124.49       32252.40        NaN     NaN      NaN
## RP.125.27       31788.72        NaN     NaN      NaN
## RP.125.67       -4195.53        NaN     NaN      NaN
## RP.128.42          87.41        NaN     NaN      NaN
## RP.129.25       23830.84        NaN     NaN      NaN
## RP.129.61       -1162.93        NaN     NaN      NaN
## RP.129.94       -2797.52        NaN     NaN      NaN
## RP.131.15        5601.16        NaN     NaN      NaN
## RP.132.55        1305.39        NaN     NaN      NaN
## RP.136.92       -2404.62        NaN     NaN      NaN
## RP.137.11        5940.39        NaN     NaN      NaN
## RP.139.11         -76.27        NaN     NaN      NaN
## RP.141.66       12727.18        NaN     NaN      NaN
## RP.143.15        1748.49        NaN     NaN      NaN
## RP.145.81       37099.90        NaN     NaN      NaN
## RP.146.75       12303.65        NaN     NaN      NaN
## RP.155.02        5289.54        NaN     NaN      NaN
## RP.155.85        5601.58        NaN     NaN      NaN
## RP.161.64        2288.04        NaN     NaN      NaN
## RP.19.05        -3346.94        NaN     NaN      NaN
## Denuncias110,1        NA         NA      NA       NA
## Denuncias111,4        NA         NA      NA       NA
## Denuncias121,9        NA         NA      NA       NA
## Denuncias123,8        NA         NA      NA       NA
## Denuncias124,0        NA         NA      NA       NA
## Denuncias126,6        NA         NA      NA       NA
## Denuncias127,2        NA         NA      NA       NA
## Denuncias133,8        NA         NA      NA       NA
## Denuncias151,0        NA         NA      NA       NA
## Denuncias153,1        NA         NA      NA       NA
## Denuncias153,9        NA         NA      NA       NA
## Denuncias154,4        NA         NA      NA       NA
## Denuncias155,9        NA         NA      NA       NA
## Denuncias160,3        NA         NA      NA       NA
## Denuncias165,0        NA         NA      NA       NA
## Denuncias169,8        NA         NA      NA       NA
## Denuncias188,2        NA         NA      NA       NA
## Denuncias200,4        NA         NA      NA       NA
## Denuncias210,3        NA         NA      NA       NA
## Denuncias215,1        NA         NA      NA       NA
## Denuncias218,6        NA         NA      NA       NA
## Denuncias251,3        NA         NA      NA       NA
## Denuncias268,8        NA         NA      NA       NA
## Denuncias278,8        NA         NA      NA       NA
## Denuncias291,8        NA         NA      NA       NA
## Denuncias389,8        NA         NA      NA       NA
## Denuncias553,7        NA         NA      NA       NA
## Denuncias63,2         NA         NA      NA       NA
## Denuncias642,7        NA         NA      NA       NA
## Denuncias84,6         NA         NA      NA       NA
## Denuncias90,5         NA         NA      NA       NA
## Denuncias99,2         NA         NA      NA       NA
## 
## Residual standard error: NaN on 0 degrees of freedom
##   (21 observations deleted due to missingness)
## Multiple R-squared:      1,  Adjusted R-squared:    NaN 
## F-statistic:   NaN on 32 and 0 DF,  p-value: NA
library(modelsummary)
## `modelsummary` 2.0.0 now uses `tinytable` as its default table-drawing
##   backend. Learn more at: https://vincentarelbundock.github.io/tinytable/
## 
## Revert to `kableExtra` for one session:
## 
##   options(modelsummary_factory_default = 'kableExtra')
## 
## Change the default backend persistently:
## 
##   config_modelsummary(factory_default = 'gt')
## 
## Silence this message forever:
## 
##   config_modelsummary(startup_message = FALSE)
model1=list('apropiacion (I)'=reg1)
modelsummary(model1, title = "Regresion: modelo 1",
             stars = TRUE,
             output = "kableExtra")
## Warning: Model has zero degrees of freedom!

## Warning: Model has zero degrees of freedom!
Regresion: modelo 1
 apropiacion (I)
(Intercept) 5009.470
RP.116.68 -4281.300
RP.117.49 69208.750
RP.117.99 39876.910
RP.118.28 20769.450
RP.118.49 16450.140
RP.119.24 38235.410
RP.119.37 65885.220
RP.120.07 109794.440
RP.120.65 15100.290
RP.120.89 -1253.780
RP.123.14 36818.280
RP.123.58 34180.610
RP.124.49 32252.400
RP.125.27 31788.720
RP.125.67 -4195.530
RP.128.42 87.410
RP.129.25 23830.840
RP.129.61 -1162.930
RP.129.94 -2797.520
RP.131.15 5601.160
RP.132.55 1305.390
RP.136.92 -2404.620
RP.137.11 5940.390
RP.139.11 -76.270
RP.141.66 12727.180
RP.143.15 1748.490
RP.145.81 37099.900
RP.146.75 12303.650
RP.155.02 5289.540
RP.155.85 5601.580
RP.161.64 2288.040
RP.19.05 -3346.940
Num.Obs. 33
R2 1.000
AIC
BIC
Log.Lik.
RMSE 0.00
+ p < 0.1, * p < 0.05, ** p < 0.01, *** p < 0.001