knitr::opts_chunk$set( collapse = TRUE, comment = "#>", fig.path = "man/figures/README-", out.width = "80%" )
esaps package 
r badger::badge_devel("Nicolas-Schmidt/esaps", "blue")
It allows structuring electoral data of different size and structure to calculate various indicators frequently used in the studies of electoral systems and party systems. Indicators of electoral volatility, electoral disproportionality, party nationalization and the effective number of parties are included.
# Install speech from CRAN install.packages("esaps") # The development version from GitHub: if (!require("remotes")) install.packages("remotes") remotes::install_github("Nicolas-Schmidt/esaps")
| Indicator | Method | Variables | Function |
| -----------------------------| ------------------------------ | --------------- |-------------------------- |
| Electoral Volatility | Pedersen (1979) | election unit party votes | evolat(., method=1) |
| | Powell and Tucker (2014) | election unit party votes | evolat(., method=2) |
| | Torcal and Lago (2015) | election unit party votes M | evolat(., method=3) |
| Effective Number of Parties | Laakso and Taagepera (1979) | election unit party votes or seats | enp() |
| Party System Nationalization | Mainwaring and Jones (2003)| election unit party votes votes_nac | psns(., method=1) |
| | Chhibber and Kollman (2004)| election unit party votes votes_nac | psns(., method=2) |
| Party Nationalization | Mainwaring and Jones (2003)| election unit party votes | psns(., method=1,pn=TRUE)|
| Electoral Disproportionality | Rae (1971) | election unit party votes seats | dispro(., method=1) |
| | Loosemore and Hanby (1971) | election unit party votes seats | dispro(., method=2) |
| | Lijphart_1 (1986) | election unit party votes seats | dispro(., method=3) |
| | Lijphart_2 (1994) | election unit party votes seats | dispro(., method=4) |
| | Gallagher (1991) | election unit party votes seats | dispro(., method=5) |
| | Cox and Shugart (1991) | election unit party votes seats | dispro(., method=6) |

library(esaps) votes <- list(data.frame(country = rep("ARG", 3), year = c(1995, 2000, 2005), party_A = c(40,10,20), party_B = c(35,20,40), party_C = c(25,70,40)), data.frame(country = rep("URY", 4), year = c(1995, 2000, 2005, 2010), party_A = c(30,30,20,20), party_B = c(30,50,40, 30), party_C = c(30,10,30, 25), party_D = c(10,10,10,25)), data.frame(country = rep("BRA", 2), year = c(1993, 1998), party_A = c(30, 55), party_B = c(70, 45))) votes votes <- convert_esaps(dataset = votes, unit.name = "country", election.name = "year") votes ## VOTES AND SEATS votes_2 <- data.frame( year = c(2000, 2005), country = "URY", votes_party1 = c(20, 30), votes_party2 = c(30, 35), votes_party3 = c(40, 25), votes_party4 = c(10, 10), seats_party1 = c(25, 35), seats_party2 = c(20, 30), seats_party3 = c(40, 30), seats_party4 = c(15, 5) ) votes_2 votes_2c <- convert_esaps(dataset = votes_2, unit.name = "country", election.name = "year", seats = TRUE) votes_2c
Electoral volatility
evolat(votes, 1) evolat(tidy_data = votes, method = 1, summary = TRUE)
Effective Number of Parties
enp(votes)
Electoral Disproportionality
votes_2 v2 <- convert_esaps(dataset = votes_2, unit.name = "country", election.name = "year", seats = TRUE) dispro(v2, 1:6, 1) library(magrittr) convert_esaps(dataset = votes_2, unit.name = "country", election.name = "year", seats = TRUE) %>% dispro(1:3) dispro(tidy_data = v2, method = c("Rae", "Gallagher"))
Party System Nationalization Score and Party Nationalization Score
votes3 <- data.frame(election = rep(2000,4), unit = rep(c("District_1", "District_2"), each = 2), party = rep(c("party_A", "party_B"), 2), votes = c(0.60,0.40, 0.30, 0.70), votes_nac = rep(c(0.55,0.45),2) ) votes3 psns(tidy_data = votes3, method = 1) psns(tidy_data = votes3, method = 1, pns = TRUE)
Electoral volatility in Uruguay
library(Boreluy) # https://nicolas-schmidt.github.io/Boreluy/ library(tidyverse) map_df(c(1984, 1989, 1994, 1999, 2004), nacional_uy) %>% as_esaps() %>% evolat("Pedersen") %>% ggplot(aes(x = election, y = eVolat)) + geom_line(aes(group = 1)) + geom_point(size = 2, color = "red") + theme_minimal()
Linear Model
library(tidyverse) dat <- inner_join(evolat(votes, 1), enp(votes)) dat lm(formula(dat[,4:3]), data = dat) ggplot(dat, aes(x = enp, y = eVolat )) + geom_point() + geom_smooth(method = lm, se = TRUE) + theme_minimal()
To cite esaps in publications, please use:
citation("esaps")
Nicolas Schmidt (nschmidt@cienciassociales.edu.uy)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.