De votos a escaños/diputados 👨‍💻 Método D'Hondt AUTOMÁTICO con R

Cada vez que hay elecciones aparece la misma duda:
¿cómo se convierten los votos en escaños o diputados?

La respuesta está en el método D’Hondt, un sistema de reparto proporcional que se usa en muchos países. En este artículo te voy a explicar cómo funciona el método D’Hondt y, lo más importante, cómo implementarlo de forma automática con R.


¿Qué es el método D’Hondt?

El método D’Hondt es un sistema matemático que sirve para repartir escaños en función de los votos obtenidos por cada partido.

Se basa en:

  • Dividir los votos de cada partido entre una serie de divisores

  • Ordenar los resultados

  • Asignar los escaños a los valores más altos

Es un método proporcional, pero no perfectamente proporcional: suele beneficiar ligeramente a los partidos más votados.


Ejemplo sencillo del método D’Hondt

Supongamos:

  • 3 partidos: A, B y C

  • 5 escaños a repartir

Votos:

  • Partido A: 10 000

  • Partido B: 6 000

  • Partido C: 4 000

El método D’Hondt divide los votos entre 1, 2, 3, etc., y asigna los escaños a los mayores cocientes.

Hacer esto a mano es un rollo… pero con R se automatiza en segundos.


Preparar los datos en R

Empezamos creando un data frame con los votos:

votos <- data.frame(
  partido = c("A", "B", "C"),
  votos = c(10000, 6000, 4000)
)

Y definimos el número de escaños:

escanos <- 5

Crear la tabla del método D’Hondt en R

Ahora generamos los divisores y calculamos los cocientes:

library(dplyr)

dhondt <- votos %>%
  slice(rep(1:n(), each = escanos)) %>%
  group_by(partido) %>%
  mutate(divisor = row_number(),
         cociente = votos / divisor)

Esto crea automáticamente todas las divisiones necesarias para cada partido.


Asignar los escaños automáticamente

Ahora solo queda ordenar y quedarnos con los valores más altos:

resultado <- dhondt %>%
  arrange(desc(cociente)) %>%
  slice(1:escanos)

Cada fila representa un escaño asignado.


Contar escaños por partido

Para ver cuántos escaños obtiene cada partido:

resultado_final <- resultado %>%
  count(partido, name = "escanos")

Y listo. Ya tienes el reparto de escaños con el método D’Hondt, calculado de forma automática.


Ventajas de usar R para el método D’Hondt

Hacerlo con R tiene varias ventajas claras:

  • Evitas errores manuales

  • Funciona con cualquier número de partidos

  • Se adapta a cualquier número de escaños

  • Puedes repetirlo con distintos escenarios

  • Es totalmente reproducible

Ideal para análisis electorales, docencia o curiosidad personal.


Adaptar el método D’Hondt a elecciones reales

Este enfoque se puede ampliar fácilmente para:

  • Umbrales electorales (por ejemplo, 5 %)

  • Provincias o distritos

  • Datos reales de elecciones

  • Comparar distintos sistemas de reparto

R te permite simular escenarios completos de forma muy rápida.


Conclusión

Qué deberías quedarte de este artículo:

  • El método D’Hondt reparte escaños proporcionalmente

  • Se basa en divisiones sucesivas de los votos

  • Con R se puede automatizar fácilmente

  • El código es flexible y reutilizable

  • Ideal para análisis electoral

En la academia online tienes cursos estructurados para aprender R paso a paso, con ejemplos claros y aplicables al mundo real.