---
title: "PRMethods"
author: Pau Bello Pérez
output: rmarkdown::html_vignette
vignette: >
  %\VignetteIndexEntry{PRMethods}
  %\VignetteEngine{knitr::rmarkdown}
---

Autor: Pau Bello Pérez

# Descripción

Con este paquete podrás calcular fácilmente la distribución de escaños, *seats*, usando distintos métodos distributivos de cociente: *D'Hondt* (`dhondt()`), *Sainte-Laguë* (`saintelague()`) y *Modified Sainte-Laguë* (`saintelaguemod()`).

# Uso Básico de D'Hondt

La función es la siguiente:

-   *dhondt(votes, seats, threshold)*

Como vemos, tiene tres parámetros:

-   ***votes*** : aquí debes indicar el número de votos por partido, como se hace en el ejemplo;

-   ***seats***: en este parámetro debes indicar la magnitud de distrito, es decir, los escaños a repartir;

-   ***threshold***: en este parámetro puedes añadir un umbral de votos que los partidos deben sobrepasar para estar en el cómputo y llevarse algún escaño.

Aquí vemos un ejemplo:

```{r}
library(PRMethods)

votes <- c(A = 1000, B = 700, C = 300)
seats <- 10
threshold <- 5 

dhondt(votes, seats, threshold)
```

En este caso, se reparten 10 escaños, y el umbral se sitúa en el 5%. Además, puedes saber qué partido está más cerca de conseguir un escaño adicional, a cuántos votos y a costa de qué partido.

# Uso Básico de Sainte-Laguë y Modified Sainte-Laguë

La función es la siguiente

-   *saintelague(votes, seats, threshold)*
-   *saintelaguemod(votes, seats, threshold, div)*

A nivel de código, \*\_\_saintelague()\_\* funciona igual que *dhondt()*. Sin embargo, *saintelaguemod()* tiene un argumento adicional: *div()*. Este argumento permite cambiar el divisor, aunque está predeterminado en 1.4.

Aquí vemos un ejemplo de \*\_saintelague\*()\_:

```{r}
votes <- c(A = 1000, B = 700, C = 300)
seats <- 10
threshold <- 5

saintelague(votes, seats, threshold)
```

Ahora lo vemos con *saintelaguemod*():

```{r}
library(PRMethods)
votes <- c(A = 1000, B = 700, C = 300)
seats <- 10
threshold <- 5
div <- 1.4

saintelaguemod(votes, seats, threshold, div)

div_mod <- 1.8

saintelaguemod(votes, seats, threshold, div_mod)


```

# Diferencias entre métodos

Los tres métodos son fórmulas distributivas de promedio mayor. La diferencia entre ellos radica en los divisores. Aquí lo vemos:

-   D'Hondt: *v*/1, *v*/2, *v*/3, v/4, v/5, etc.;

-   Sainte-Laguë: *v*/1, *v*/3, *v*/5, *v*/7, etc;

-   Modified Sainte-Laguë: *v*/1.4, *v*/3, *v*/5, *v*/7, etc.

    *(v* = votos)

D'Hondt usa todos los divisores; Sainte-Laguë usa divisores impares; y Modified Sainte-Laguë usa divisores impares, pero con la primera división siendo 1.4, aunque en ocasiones puede variar, para lo que hay un argumento (*div*).

# Conclusión

Este paquete proporciona herramientas fáciles de usar para calcular la asignación de escaños utilizando métodos comunes en sistemas de representación proporcional. Dependiendo del sistema electoral, cada método puede proporcionar diferentes resultados en términos de proporcionalidad y beneficio para partidos grandes o pequeños.

Para más detalles sobre los métodos, puedes consultar la referencia citada abajo.

# Referencias

-   Gallagher, Michael (1991). "Proportionality, disproportionality and electoral systems". *Electoral Studies*, 10(1), 33–51. [doi:10.1016/0261-3794(91)90004-C](doi:10.1016/0261-3794(91)90004-C){.uri}.
