Learn R Programming

BayesMallows (version 1.1.0)

rank_distance: Distance between a set of rankings and a given rank sequence

Description

Compute the distance between a matrix of rankings and a rank sequence.

Usage

rank_distance(rankings, rho, metric, obs_freq = 1)

Arguments

rankings

A matrix of size \(N \)\(\times\)\( n_items\) of rankings in each row. Alternatively, if \(N\) equals 1, rankings can be a vector.

rho

A ranking sequence.

metric

Character string specifying the distance measure to use. Available options are "kendall", "cayley", "hamming", "ulam", "footrule" and "spearman".

obs_freq

Vector of observation frequencies of length \(N\), or of length 1, which means that all ranks are given the same weight. Defaults to 1.

Value

A vector of distances according to the given metric.

Details

The implementation of Cayley distance is based on a C++ translation of Rankcluster::distCayley Grimonprez2016BayesMallows.

References

Examples

Run this code
# NOT RUN {
# Distance between two vectors of rankings:
rank_distance(1:5,5:1, metric = "kendall")
rank_distance(c(2, 4, 3, 6, 1, 7, 5), c(3, 5, 4, 7, 6, 2, 1), metric = "cayley")
rank_distance(c(4, 2, 3, 1), c(3, 4, 1, 2), metric = "hamming")
rank_distance(c(1, 3, 5, 7, 9, 8, 6, 4, 2), c(1, 2, 3, 4, 9, 8, 7, 6, 5), "ulam")
rank_distance(c(8, 7, 1, 2, 6, 5, 3, 4), c(1, 2, 8, 7, 3, 4, 6, 5), "footrule")
rank_distance(c(1, 6, 2, 5, 3, 4), c(4, 3, 5, 2, 6, 1), "spearman")

# Difference between a metric and a vector
# We set the burn-in and thinning too low for the example to run fast
data0 <- sample_mallows(rho0 = 1:10, alpha = 20, n_samples = 1000,
                        burnin = 10, thinning = 1)

rank_distance(rankings = data0, rho = 1:10, metric = "kendall")
# }

Run the code above in your browser using DataLab