Skip to content

anticlust

0.8.18Package record

Subset Partitioning via Anticlustering

3packages dependsuggested by 1
14.8Kdownloads / year
67.4%test coverage
13/13flavors OK

Overview

About

The method of anticlustering partitions a pool of elements into groups (i.e., anticlusters) with the goal of maximizing between-group similarity or within-group heterogeneity. The anticlustering approach thereby reverses the logic of cluster analysis that strives for high within-group homogeneity and clear separation between groups. Computationally, anticlustering is accomplished by maximizing instead of minimizing a clustering objective function, such as the intra-cluster variance (used in k-means clustering) or the sum of pairwise distances within clusters. The main function anticlustering() gives access to optimal and heuristic anticlustering methods described in Papenberg and Klau (2021; doi:10.1037/met0000301), Brusco et al. (2020; doi:10.1111/bmsp.12186), Papenberg (2024; doi:10.1111/bmsp.12315), Papenberg, Wang, et al. (2025; doi:10.1016/j.crmeth.2025.101137), Papenberg, Breuer, et al. (2025; doi:10.1017/psy.2025.10052), Yang et al. (2022; doi:10.1016/j.ejor.2022.02.003), and Wu et al. (2025; doi:10.1016/j.cor.2025.107030). The optimal algorithms require that an integer linear programming solver is installed. This package will install 'lpSolve' (https://cran.r-project.org/package=lpSolve) as a default solver, but it is also possible to use the package 'Rglpk' (https://cran.r-project.org/package=Rglpk), which requires the GNU linear programming kit (https://www.gnu.org/software/glpk/glpk.html), the package 'Rsymphony' (https://cran.r-project.org/package=Rsymphony), which requires the SYMPHONY ILP solver (https://github.com/coin-or/SYMPHONY), or the commercial solver Gurobi, which provides its own R package that is not available via CRAN (https://www.gurobi.com/downloads/). 'Rglpk', 'Rsymphony', 'gurobi' and their system dependencies have to be manually installed by the user because they are only suggested dependencies. Full access to the bicriterion anticlustering method proposed by Brusco et al. (2020) is given via the function bicriterion_anticlustering(), while kplus_anticlustering() implements the full functionality of the k-plus anticlustering approach proposed by Papenberg (2024). Some other functions are available to solve classical clustering problems. The function balanced_clustering() applies a cluster analysis under size constraints, i.e., creates equal-sized clusters. The function matching() can be used for (unrestricted, bipartite, or K-partite) matching. The function wce() can be used optimally solve the (weighted) cluster editing problem, also known as correlation clustering, clique partitioning problem or transitivity clustering.

Install

Health

CRAN checks
13OK
Slowest check: 9.3 min · r-release-macos-x86_64
Status changes
  • OK13 OK2026-09-08
  • ERROR12 OK, 1 ERROR2026-09-07
  • OK13 OK2026-08-05
  • NOTE12 OK, 1 NOTE2026-08-01
  • OK13 OK2026-06-10
Show 5 earlier changesHide 5 earlier changes
  • ERROR12 OK, 1 ERROR2026-06-06
  • OK13 OK2026-05-09
  • ERROR12 OK, 1 ERROR2026-05-03
  • OK12 OK2026-04-25
  • NOTE11 OK, 3 NOTE2026-03-10
Advisories

none known

Documentation

In release 0.8.18
README· In the repository, left out of the releaseVignettesYes · 5 · dynamicNEWS· In the repository, left out of the releaseCitation fileYes · cites a publicationWebsiteYes · pkgdown
Help pages
27
Examples that run
96%26 run in a plain check · 1 only when donttest examples are enabled (R CMD check --as-cran)
Exported functions with examples
100%
Documented parameters
100%
Return-value docs
84%
Help pages citing references
67%

Downloads

14.8K
CRAN downloads in the past year
Rank #3,179 · ~41/day · ~1.2K/mo
Daily download trend is not available in this view yet.
1.6K30 days
3.8K90 days
14.8K1 year
Compare downloads with other packages →
Also on598 r2u53 autocran

Repository

39Stars
9Forks
4Open issues
0Open PRs
41Releases
1,865Commits
7Commit identities
1,865 commits · Last activity 2026-09-15 · 0% stars, 30d
Responsiveness
How these are sampled
PRs merged (all time)
85%
Median days to close, 50 most recently updated closed issues
47
Median days to close, 50 most recently updated closed PRs
0

Stars over time

2025-08-27 · 362026-08-24 · 39
PracticesBeta

4 development-tooling and community-health practices detected across 3 families in the upstream repository

Checks run against github.com/m-py/anticlust on 2026-10-21.

Continuous integration (2)
GitHub ActionsR CMD check workflow

The R CMD check workflow runs on Linux

Docs source (1)
pkgdown
Lint, format, editor (1)
RStudio project
How this is detected·Detection ruleset v4 (2026-10-20)

Dependencies

Declared dependencies
10 external dependencies (excludes base and recommended)

Installing anticlust adds 2 packages (2 with compiled code, 516 KB of source tarballs). Heaviest: lpSolve 457 KB, RANN 59 KB.

Depends (1)
R >= 3.6.0
Imports (4)
MatrixRANNlpSolveMASS
LinkingTo (0)
none
Enhances (0)
none
Reverse dependencies
3direct
0indirect
Imports 3
Suggested by 1
Depends, Imports or LinkingTo, most downloaded first
Suggests, most downloaded first

Datasets

People & History

People (10)
Author, Maintainer since 0.5.0 (2020)
Contributor · added in 0.6.0
Bicriterion algorithm by Brusco et al.
Contributor · added in 0.8.16
FIFR heuristic by Wu et al.
Contributor · added in 0.7.0
Optimal maximum dispersion algorithm
Contributor · added in 0.8.9
TPSDP heuristic by Yang et al.
Contributor
centroid based clustering algorithm
Contributor
package logo
Contributor · added in 0.6.3
Example data set
Contributor · added in 0.8.16
Function experimental_allocation()
Thesis advisor
Listed in earlier versions (4)
Show 4 peopleHide 4 people
Klau
no longer listed · 0.5.0 to 0.5.6
Tkotz
no longer listed · 0.5.0 to 0.5.6
Juliane V.
no longer listed · 0.6.0 to 0.8.18
Gunnar W.
no longer listed · 0.6.0 to 0.8.18
Releases (24)

Pick two releases to compare their code metrics.

Show 15 earlier eventsHide 15 earlier events
  • 0.8.1
    record
    2023-10-26 · diff ↗ ·
    removed 1 export
    generate_exchange_partners
  • 0.8.0-1
    record
    2023-10-25 · diff ↗
  • 0.8.0
    record
    2023-09-14 · diff ↗ ·
    added 1 export
    generate_exchange_partners
  • 0.7.0
    record
    2023-07-15 · diff ↗ ·
    added 3 exports
    categories_to_binary, kplus_moment_variables, optimal_dispersion
  • 0.6.4
    record
    2023-05-02 · diff ↗
  • R
    R 4.3.0 released · 2023-04-21
  • 0.6.3
    record
    2023-01-30 · diff ↗ ·
    removed 2 exports
    kplus_objective, mean_sd_obj
    added 1 export
    kplus_anticlustering
  • R
    R 4.2.0 released · 2022-04-22
  • 0.6.1
    record
    2021-12-07 · diff ↗
  • 0.6.0
    record
    2021-12-01 · diff ↗ ·
    added 1 export
    bicriterion_anticlustering
  • R
    R 4.1.0 released · 2021-05-18
  • 0.5.6
    record
    2020-11-24 · diff ↗
  • 0.5.3
    record
    2020-09-25 · diff ↗ ·
    added 1 export
    kplus_objective
  • 0.5.0
    record
    2020-06-29
  • R
    R 4.0.0 released · 2020-04-24

Package metadata

First published
2020-06-29
Total releases
24 / 6 yrs
License
MIT + file LICENSE OSI
Minimum R
≥ 3.6.0
Bundled data
17 KB / 2 files
Download size
622 KB

Cite

Cite this package

Run in R for the authors' entry:

citation("anticlust")

The package provides a citation file, so citation() returns the authors' own entry.

It points to 10.1037/met0000301.

Cite the R Observatory

For a number measured here: a download total, a coverage figure, an archival date.

APA

Balamuta, J. J. (2026). R Observatory: Metrics for anticlust version 0.8.18 [Data set]. HJJB, LLC. Data release v2026-10-23. https://doi.org/10.5281/zenodo.21843040

From data release v2026-10-23, which the citation names so these numbers can be found later. More on citing and the projects behind them.

Report a problem with this page →

Privacy choices

These apply to this browser and are stored on this device only. Nothing about your choice is sent to us.

Read the privacy policy