An open API service indexing awesome lists of open source software.

https://github.com/bblodfon/fastvoter

Efficient Rcpp Voting Methods for Committee Selection in R
https://github.com/bblodfon/fastvoter

Last synced: 6 months ago
JSON representation

Efficient Rcpp Voting Methods for Committee Selection in R

Awesome Lists containing this project

README

          

---
output: github_document
---

```{r, include = FALSE}
knitr::opts_chunk$set(
collapse = TRUE,
comment = "#>",
fig.path = "man/figures/README-",
out.width = "100%"
)
```

# fastVoteR

[![R-CMD-check](https://github.com/bblodfon/fastVoteR/actions/workflows/R-CMD-check.yaml/badge.svg)](https://github.com/bblodfon/fastVoteR/actions/workflows/R-CMD-check.yaml)
[![Codecov test coverage](https://codecov.io/gh/bblodfon/fastVoteR/graph/badge.svg)](https://app.codecov.io/gh/bblodfon/fastVoteR)
[![CRAN status](https://www.r-pkg.org/badges/version/fastVoteR)](https://CRAN.R-project.org/package=fastVoteR)

## Overview

`fastVoteR` is an R package with Efficient [Rcpp](https://github.com/rcppcore/rcpp) Voting Methods for Committee Selection.

Still **under development**.

## Installation

``` r
# CRAN version:
install.packages("fastVoteR")

# Development version from GitHub:
# install.packages("pak")
pak::pak("bblodfon/fastVoteR")
```

## Usage

```{r example}
library(fastVoteR)

# 5 candidates
candidates = paste0("V", seq_len(5))
candidates

# 4 voters
voters = list(
c("V3", "V1", "V4"),
c("V3", "V1"),
c("V3", "V2"),
c("V2", "V4")
)
voters

set.seed(42)

# voter weights
weights = c(1.1, 2.5, 0.8, 0.9)

# Approval voting (all voters equal)
rank_candidates(voters, candidates)

# Approval voting (voters unequal)
rank_candidates(voters, candidates, weights)

# Satisfaction Approval voting (voters unequal)
rank_candidates(voters, candidates, weights, method = "sav")

# Sequential Proportional Approval voting (voters equal)
rank_candidates(voters, candidates, method = "seq_pav")
```

## Related work

See [vote](https://CRAN.R-project.org/package=vote) and [votesys](https://CRAN.R-project.org/package=votesys) R packages.
For strictly ABC-voting rules, see [abcvoting](https://github.com/martinlackner/abcvoting) Python package.

---

## Code of Conduct

Please note that the `fastVoteR` project is released with a [Contributor Code of Conduct](https://bblodfon.github.io/fastVoteR/CODE_OF_CONDUCT.html).
By contributing to this project, you agree to abide by its terms.