Skip to content

matchFeat

One-to-One Feature Matching

v1.0 · Dec 13, 2022 · GPL-2

Description

Statistical methods to match feature vectors between multiple datasets in a one-to-one fashion. Given a fixed number of classes/distributions, for each unit, exactly one vector of each class is observed without label. The goal is to label the feature vectors using each label exactly once so to produce the best match across datasets, e.g. by minimizing the variability within classes. Statistical solutions based on empirical loss functions and probabilistic modeling are provided. The 'Gurobi' software and its 'R' interface package are required for one of the package functions (match.2x()) and can be obtained at <https://www.gurobi.com/> (free academic license). For more details, refer to Degras (2022) <doi:10.1080/10618600.2022.2074429> "Scalable feature matching for large data collections" and Bandelt, Maas, and Spieksma (2004) <doi:10.1057/palgrave.jors.2601723> "Local search heuristics for multi-index assignment problems with decomposable costs".

Downloads

CRAN

261

Last 30 days

18754th

640

Last 90 days

2.3K

Last year

Trend: +46.6% (30d vs prior 30d)

r2u CRAN

0

Last 30 days

23

Last 90 days

96

Last year

Trend: -100% (30d vs prior 30d)

autoCRAN

5

Last 7 days

19

Last 30 days

1

All-time

autoCRAN-only: this name is served only by autoCRAN, so the count is exact.

CRAN Check Status

13 NOTE
Show all 13 flavors
Flavor Status
r-devel-linux-x86_64-debian-clang NOTE
r-devel-linux-x86_64-debian-gcc NOTE
r-devel-linux-x86_64-fedora-clang NOTE
r-devel-linux-x86_64-fedora-gcc NOTE
r-devel-windows-x86_64 NOTE
r-oldrel-macos-arm64 NOTE
r-oldrel-macos-x86_64 NOTE
r-oldrel-windows-x86_64 NOTE
r-patched-linux-x86_64 NOTE
r-release-linux-x86_64 NOTE
r-release-macos-arm64 NOTE
r-release-macos-x86_64 NOTE
r-release-windows-x86_64 NOTE
Check details (15 non-OK)
NOTE r-devel-linux-x86_64-debian-clang

CRAN incoming feasibility

Maintainer: ‘David Degras <david.degras@umb.edu>’

No Authors@R field in DESCRIPTION.
Please add one, modifying
  Authors@R: person(given = "David",
                    family = "Degras",
                    role = c("aut", "cre"),
                    email = "david.degras@umb.edu")
as necessary.
NOTE r-devel-linux-x86_64-debian-clang

Rd files

checkRd: (-1) Rand.index.Rd:22: Lost braces; missing escapes or markup?
    22 | The two vectors \code{x} and \code{y} must have equal length. Given a set \eqn{S} and two partitions \eqn{X} and \eqn{Y} of \eqn{S}, the Rand index is the proportion of pairs of elements in \eqn{S} (out of all pairs) that are either concordant in both \eqn{X} and \eqn{Y} (i.e., they belong to the same member of \eqn{X} and to the same member of \eqn{Y}) or discordant (i.e., not concordant) in both \eqn{X} and {Y}.  
       |                                                                                                                                                                                                                                                                                                                                                                                                                              ^
checkRd: (-1) predict.matchFeat.Rd:21: Lost braces
    21 | The function \code{predict.matchFeat} finds the best matching for new feature vectors relative to an existing set of cluster/class centers. If code{object} results from a call to \code{\link{match.gaussmix}}, the same function is used for prediction (with fixed mean vectors and covariance matrices). In other cases, the function \code{\link{match.template}} is used for prediction. 
       |                                                                                                                                                    ^
NOTE r-devel-linux-x86_64-debian-gcc

CRAN incoming feasibility

Maintainer: ‘David Degras <david.degras@umb.edu>’

No Authors@R field in DESCRIPTION.
Please add one, modifying
  Authors@R: person(given = "David",
                    family = "Degras",
                    role = c("aut", "cre"),
                    email = "david.degras@umb.edu")
as necessary.
NOTE r-devel-linux-x86_64-debian-gcc

Rd files

checkRd: (-1) Rand.index.Rd:22: Lost braces; missing escapes or markup?
    22 | The two vectors \code{x} and \code{y} must have equal length. Given a set \eqn{S} and two partitions \eqn{X} and \eqn{Y} of \eqn{S}, the Rand index is the proportion of pairs of elements in \eqn{S} (out of all pairs) that are either concordant in both \eqn{X} and \eqn{Y} (i.e., they belong to the same member of \eqn{X} and to the same member of \eqn{Y}) or discordant (i.e., not concordant) in both \eqn{X} and {Y}.  
       |                                                                                                                                                                                                                                                                                                                                                                                                                              ^
checkRd: (-1) predict.matchFeat.Rd:21: Lost braces
    21 | The function \code{predict.matchFeat} finds the best matching for new feature vectors relative to an existing set of cluster/class centers. If code{object} results from a call to \code{\link{match.gaussmix}}, the same function is used for prediction (with fixed mean vectors and covariance matrices). In other cases, the function \code{\link{match.template}} is used for prediction. 
       |                                                                                                                                                    ^
NOTE r-devel-linux-x86_64-fedora-clang

Rd files

checkRd: (-1) Rand.index.Rd:22: Lost braces; missing escapes or markup?
    22 | The two vectors \code{x} and \code{y} must have equal length. Given a set \eqn{S} and two partitions \eqn{X} and \eqn{Y} of \eqn{S}, the Rand index is the proportion of pairs of elements in \eqn{S} (out of all pairs) that are either concordant in both \eqn{X} and \eqn{Y} (i.e., they belong to the same member of \eqn{X} and to the same member of \eqn{Y}) or discordant (i.e., not concordant) in both \eqn{X} and {Y}.  
       |                                                                                                                                                                                                                                                                                                                                                                                                                              ^
checkRd: (-1) predict.matchFeat.Rd:21: Lost braces
    21 | The function \code{predict.matchFeat} finds the best matching for new feature vectors relative to an existing set of cluster/class centers. If code{object} results from a call to \code{\link{match.gaussmix}}, the same function is used for prediction (with fixed mean vectors and covariance matrices). In other cases, the function \code{\link{match.template}} is used for prediction. 
       |                                                                                                                                                    ^
NOTE r-devel-linux-x86_64-fedora-gcc

Rd files

checkRd: (-1) Rand.index.Rd:22: Lost braces; missing escapes or markup?
    22 | The two vectors \code{x} and \code{y} must have equal length. Given a set \eqn{S} and two partitions \eqn{X} and \eqn{Y} of \eqn{S}, the Rand index is the proportion of pairs of elements in \eqn{S} (out of all pairs) that are either concordant in both \eqn{X} and \eqn{Y} (i.e., they belong to the same member of \eqn{X} and to the same member of \eqn{Y}) or discordant (i.e., not concordant) in both \eqn{X} and {Y}.  
       |                                                                                                                                                                                                                                                                                                                                                                                                                              ^
checkRd: (-1) predict.matchFeat.Rd:21: Lost braces
    21 | The function \code{predict.matchFeat} finds the best matching for new feature vectors relative to an existing set of cluster/class centers. If code{object} results from a call to \code{\link{match.gaussmix}}, the same function is used for prediction (with fixed mean vectors and covariance matrices). In other cases, the function \code{\link{match.template}} is used for prediction. 
       |                                                                                                                                                    ^
NOTE r-devel-windows-x86_64

Rd files

checkRd: (-1) Rand.index.Rd:22: Lost braces; missing escapes or markup?
    22 | The two vectors \code{x} and \code{y} must have equal length. Given a set \eqn{S} and two partitions \eqn{X} and \eqn{Y} of \eqn{S}, the Rand index is the proportion of pairs of elements in \eqn{S} (out of all pairs) that are either concordant in both \eqn{X} and \eqn{Y} (i.e., they belong to the same member of \eqn{X} and to the same member of \eqn{Y}) or discordant (i.e., not concordant) in both \eqn{X} and {Y}.  
       |                                                                                                                                                                                                                                                                                                                                                                                                                              ^
checkRd: (-1) predict.matchFeat.Rd:21: Lost braces
    21 | The function \code{predict.matchFeat} finds the best matching for new feature vectors relative to an existing set of cluster/class centers. If code{object} results from a call to \code{\link{match.gaussmix}}, the same function is used for prediction (with fixed mean vectors and covariance matrices). In other cases, the function \code{\link{match.template}} is used for prediction. 
       |                                                                                                                                                    ^
NOTE r-oldrel-macos-arm64

Rd files

checkRd: (-1) Rand.index.Rd:22: Lost braces; missing escapes or markup?
    22 | The two vectors \code{x} and \code{y} must have equal length. Given a set \eqn{S} and two partitions \eqn{X} and \eqn{Y} of \eqn{S}, the Rand index is the proportion of pairs of elements in \eqn{S} (out of all pairs) that are either concordant in both \eqn{X} and \eqn{Y} (i.e., they belong to the same member of \eqn{X} and to the same member of \eqn{Y}) or discordant (i.e., not concordant) in both \eqn{X} and {Y}.  
       |                                                                                                                                                                                                                                                                                                                                                                                                                              ^
checkRd: (-1) predict.matchFeat.Rd:21: Lost braces
    21 | The function \code{predict.matchFeat} finds the best matching for new feature vectors relative to an existing set of cluster/class centers. If code{object} results from a call to \code{\link{match.gaussmix}}, the same function is used for prediction (with fixed mean vectors and covariance matrices). In other cases, the function \code{\link{match.template}} is used for prediction. 
       |                                                                                                                                                    ^
NOTE r-oldrel-macos-x86_64

Rd files

checkRd: (-1) Rand.index.Rd:22: Lost braces; missing escapes or markup?
    22 | The two vectors \code{x} and \code{y} must have equal length. Given a set \eqn{S} and two partitions \eqn{X} and \eqn{Y} of \eqn{S}, the Rand index is the proportion of pairs of elements in \eqn{S} (out of all pairs) that are either concordant in both \eqn{X} and \eqn{Y} (i.e., they belong to the same member of \eqn{X} and to the same member of \eqn{Y}) or discordant (i.e., not concordant) in both \eqn{X} and {Y}.  
       |                                                                                                                                                                                                                                                                                                                                                                                                                              ^
checkRd: (-1) predict.matchFeat.Rd:21: Lost braces
    21 | The function \code{predict.matchFeat} finds the best matching for new feature vectors relative to an existing set of cluster/class centers. If code{object} results from a call to \code{\link{match.gaussmix}}, the same function is used for prediction (with fixed mean vectors and covariance matrices). In other cases, the function \code{\link{match.template}} is used for prediction. 
       |                                                                                                                                                    ^
NOTE r-oldrel-windows-x86_64

Rd files

checkRd: (-1) Rand.index.Rd:22: Lost braces; missing escapes or markup?
    22 | The two vectors \code{x} and \code{y} must have equal length. Given a set \eqn{S} and two partitions \eqn{X} and \eqn{Y} of \eqn{S}, the Rand index is the proportion of pairs of elements in \eqn{S} (out of all pairs) that are either concordant in both \eqn{X} and \eqn{Y} (i.e., they belong to the same member of \eqn{X} and to the same member of \eqn{Y}) or discordant (i.e., not concordant) in both \eqn{X} and {Y}.  
       |                                                                                                                                                                                                                                                                                                                                                                                                                              ^
checkRd: (-1) predict.matchFeat.Rd:21: Lost braces
    21 | The function \code{predict.matchFeat} finds the best matching for new feature vectors relative to an existing set of cluster/class centers. If code{object} results from a call to \code{\link{match.gaussmix}}, the same function is used for prediction (with fixed mean vectors and covariance matrices). In other cases, the function \code{\link{match.template}} is used for prediction. 
       |                                                                                                                                                    ^
NOTE r-patched-linux-x86_64

Rd files

checkRd: (-1) Rand.index.Rd:22: Lost braces; missing escapes or markup?
    22 | The two vectors \code{x} and \code{y} must have equal length. Given a set \eqn{S} and two partitions \eqn{X} and \eqn{Y} of \eqn{S}, the Rand index is the proportion of pairs of elements in \eqn{S} (out of all pairs) that are either concordant in both \eqn{X} and \eqn{Y} (i.e., they belong to the same member of \eqn{X} and to the same member of \eqn{Y}) or discordant (i.e., not concordant) in both \eqn{X} and {Y}.  
       |                                                                                                                                                                                                                                                                                                                                                                                                                              ^
checkRd: (-1) predict.matchFeat.Rd:21: Lost braces
    21 | The function \code{predict.matchFeat} finds the best matching for new feature vectors relative to an existing set of cluster/class centers. If code{object} results from a call to \code{\link{match.gaussmix}}, the same function is used for prediction (with fixed mean vectors and covariance matrices). In other cases, the function \code{\link{match.template}} is used for prediction. 
       |                                                                                                                                                    ^
NOTE r-release-linux-x86_64

Rd files

checkRd: (-1) Rand.index.Rd:22: Lost braces; missing escapes or markup?
    22 | The two vectors \code{x} and \code{y} must have equal length. Given a set \eqn{S} and two partitions \eqn{X} and \eqn{Y} of \eqn{S}, the Rand index is the proportion of pairs of elements in \eqn{S} (out of all pairs) that are either concordant in both \eqn{X} and \eqn{Y} (i.e., they belong to the same member of \eqn{X} and to the same member of \eqn{Y}) or discordant (i.e., not concordant) in both \eqn{X} and {Y}.  
       |                                                                                                                                                                                                                                                                                                                                                                                                                              ^
checkRd: (-1) predict.matchFeat.Rd:21: Lost braces
    21 | The function \code{predict.matchFeat} finds the best matching for new feature vectors relative to an existing set of cluster/class centers. If code{object} results from a call to \code{\link{match.gaussmix}}, the same function is used for prediction (with fixed mean vectors and covariance matrices). In other cases, the function \code{\link{match.template}} is used for prediction. 
       |                                                                                                                                                    ^
NOTE r-release-macos-arm64

Rd files

checkRd: (-1) Rand.index.Rd:22: Lost braces; missing escapes or markup?
    22 | The two vectors \code{x} and \code{y} must have equal length. Given a set \eqn{S} and two partitions \eqn{X} and \eqn{Y} of \eqn{S}, the Rand index is the proportion of pairs of elements in \eqn{S} (out of all pairs) that are either concordant in both \eqn{X} and \eqn{Y} (i.e., they belong to the same member of \eqn{X} and to the same member of \eqn{Y}) or discordant (i.e., not concordant) in both \eqn{X} and {Y}.  
       |                                                                                                                                                                                                                                                                                                                                                                                                                              ^
checkRd: (-1) predict.matchFeat.Rd:21: Lost braces
    21 | The function \code{predict.matchFeat} finds the best matching for new feature vectors relative to an existing set of cluster/class centers. If code{object} results from a call to \code{\link{match.gaussmix}}, the same function is used for prediction (with fixed mean vectors and covariance matrices). In other cases, the function \code{\link{match.template}} is used for prediction. 
       |                                                                                                                                                    ^
NOTE r-release-macos-x86_64

Rd files

checkRd: (-1) Rand.index.Rd:22: Lost braces; missing escapes or markup?
    22 | The two vectors \code{x} and \code{y} must have equal length. Given a set \eqn{S} and two partitions \eqn{X} and \eqn{Y} of \eqn{S}, the Rand index is the proportion of pairs of elements in \eqn{S} (out of all pairs) that are either concordant in both \eqn{X} and \eqn{Y} (i.e., they belong to the same member of \eqn{X} and to the same member of \eqn{Y}) or discordant (i.e., not concordant) in both \eqn{X} and {Y}.  
       |                                                                                                                                                                                                                                                                                                                                                                                                                              ^
checkRd: (-1) predict.matchFeat.Rd:21: Lost braces
    21 | The function \code{predict.matchFeat} finds the best matching for new feature vectors relative to an existing set of cluster/class centers. If code{object} results from a call to \code{\link{match.gaussmix}}, the same function is used for prediction (with fixed mean vectors and covariance matrices). In other cases, the function \code{\link{match.template}} is used for prediction. 
       |                                                                                                                                                    ^
NOTE r-release-windows-x86_64

Rd files

checkRd: (-1) Rand.index.Rd:22: Lost braces; missing escapes or markup?
    22 | The two vectors \code{x} and \code{y} must have equal length. Given a set \eqn{S} and two partitions \eqn{X} and \eqn{Y} of \eqn{S}, the Rand index is the proportion of pairs of elements in \eqn{S} (out of all pairs) that are either concordant in both \eqn{X} and \eqn{Y} (i.e., they belong to the same member of \eqn{X} and to the same member of \eqn{Y}) or discordant (i.e., not concordant) in both \eqn{X} and {Y}.  
       |                                                                                                                                                                                                                                                                                                                                                                                                                              ^
checkRd: (-1) predict.matchFeat.Rd:21: Lost braces
    21 | The function \code{predict.matchFeat} finds the best matching for new feature vectors relative to an existing set of cluster/class centers. If code{object} results from a call to \code{\link{match.gaussmix}}, the same function is used for prediction (with fixed mean vectors and covariance matrices). In other cases, the function \code{\link{match.template}} is used for prediction. 
       |                                                                                                                                                    ^

Check History

NOTE 0 OK · 14 NOTE · 0 WARNING · 0 ERROR · 0 FAILURE Mar 10, 2026
NOTE r-devel-linux-x86_64-debian-clang

CRAN incoming feasibility

Maintainer: ‘David Degras <david.degras@umb.edu>’

No Authors@R field in DESCRIPTION.
Please add one, modifying
  Authors@R: person(given = "David",
                    family = "Degras",
                    role = c("aut", "cre"),
                    email = "david.degras@umb.edu")
as necessary.
NOTE r-devel-linux-x86_64-debian-gcc

CRAN incoming feasibility

Maintainer: ‘David Degras <david.degras@umb.edu>’

No Authors@R field in DESCRIPTION.
Please add one, modifying
  Authors@R: person(given = "David",
                    family = "Degras",
                    role = c("aut", "cre"),
                    email = "david.degras@umb.edu")
as necessary.
NOTE r-devel-linux-x86_64-fedora-clang

Rd files

checkRd: (-1) Rand.index.Rd:22: Lost braces; missing escapes or markup?
    22 | The two vectors \code{x} and \code{y} must have equal length. Given a set \eqn{S} and two partitions \eqn{X} and \eqn{Y} of \eqn{S}, the Rand index is the proportion of 
...[truncated]...
atrices). In other cases, the function \code{\link{match.template}} is used for prediction. 
       |                                                                                                                                                    ^
NOTE r-devel-linux-x86_64-fedora-gcc

Rd files

checkRd: (-1) Rand.index.Rd:22: Lost braces; missing escapes or markup?
    22 | The two vectors \code{x} and \code{y} must have equal length. Given a set \eqn{S} and two partitions \eqn{X} and \eqn{Y} of \eqn{S}, the Rand index is the proportion of 
...[truncated]...
atrices). In other cases, the function \code{\link{match.template}} is used for prediction. 
       |                                                                                                                                                    ^
NOTE r-devel-macos-arm64

Rd files

checkRd: (-1) Rand.index.Rd:22: Lost braces; missing escapes or markup?
    22 | The two vectors \code{x} and \code{y} must have equal length. Given a set \eqn{S} and two partitions \eqn{X} and \eqn{Y} of \eqn{S}, the Rand index is the proportion of 
...[truncated]...
atrices). In other cases, the function \code{\link{match.template}} is used for prediction. 
       |                                                                                                                                                    ^
NOTE r-devel-windows-x86_64

Rd files

checkRd: (-1) Rand.index.Rd:22: Lost braces; missing escapes or markup?
    22 | The two vectors \code{x} and \code{y} must have equal length. Given a set \eqn{S} and two partitions \eqn{X} and \eqn{Y} of \eqn{S}, the Rand index is the proportion of 
...[truncated]...
atrices). In other cases, the function \code{\link{match.template}} is used for prediction. 
       |                                                                                                                                                    ^
NOTE r-patched-linux-x86_64

Rd files

checkRd: (-1) Rand.index.Rd:22: Lost braces; missing escapes or markup?
    22 | The two vectors \code{x} and \code{y} must have equal length. Given a set \eqn{S} and two partitions \eqn{X} and \eqn{Y} of \eqn{S}, the Rand index is the proportion of 
...[truncated]...
atrices). In other cases, the function \code{\link{match.template}} is used for prediction. 
       |                                                                                                                                                    ^
NOTE r-release-linux-x86_64

Rd files

checkRd: (-1) Rand.index.Rd:22: Lost braces; missing escapes or markup?
    22 | The two vectors \code{x} and \code{y} must have equal length. Given a set \eqn{S} and two partitions \eqn{X} and \eqn{Y} of \eqn{S}, the Rand index is the proportion of 
...[truncated]...
atrices). In other cases, the function \code{\link{match.template}} is used for prediction. 
       |                                                                                                                                                    ^
NOTE r-release-macos-arm64

Rd files

checkRd: (-1) Rand.index.Rd:22: Lost braces; missing escapes or markup?
    22 | The two vectors \code{x} and \code{y} must have equal length. Given a set \eqn{S} and two partitions \eqn{X} and \eqn{Y} of \eqn{S}, the Rand index is the proportion of 
...[truncated]...
atrices). In other cases, the function \code{\link{match.template}} is used for prediction. 
       |                                                                                                                                                    ^
NOTE r-release-macos-x86_64

Rd files

checkRd: (-1) Rand.index.Rd:22: Lost braces; missing escapes or markup?
    22 | The two vectors \code{x} and \code{y} must have equal length. Given a set \eqn{S} and two partitions \eqn{X} and \eqn{Y} of \eqn{S}, the Rand index is the proportion of 
...[truncated]...
atrices). In other cases, the function \code{\link{match.template}} is used for prediction. 
       |                                                                                                                                                    ^
NOTE r-release-windows-x86_64

Rd files

checkRd: (-1) Rand.index.Rd:22: Lost braces; missing escapes or markup?
    22 | The two vectors \code{x} and \code{y} must have equal length. Given a set \eqn{S} and two partitions \eqn{X} and \eqn{Y} of \eqn{S}, the Rand index is the proportion of 
...[truncated]...
atrices). In other cases, the function \code{\link{match.template}} is used for prediction. 
       |                                                                                                                                                    ^
NOTE r-oldrel-macos-arm64

package dependencies

Package suggested but not available for checking: ‘gurobi’
NOTE r-oldrel-macos-x86_64

package dependencies

Package suggested but not available for checking: ‘gurobi’
NOTE r-oldrel-windows-x86_64

package dependencies

Package suggested but not available for checking: 'gurobi'

Code

Structure

Lines of code

2,618

Files

30

Compiled share

0%

Has compiled src

No

Language breakdown

R 1,673 (63.9%)Docs 945 (36.1%)

API

Exported functions

10

Internal functions

17

Recent export changes

v1.0+10 match.2x, match.bca, match.bca.gen +7 more

Testing & CI

Has tests

No

Test-to-code ratio

0.00

testthat edition

CI present

No

CI type

[]

PR gated

No

Docs

Return-value doc rate

100%

\dontrun example ratio

7.1%

Roxygen coverage

100%

Has pkgdown

No

NEWS present

No

Health & Security signals

Informational signals; not verdicts.

on.exit coverage

Unsafe pattern score

0

Dep constraint coverage

0%

Secret pattern count

0

Bundled 3rd-party code

2 items

Portability & License

Min R version

3.5.0

System requirements

C++ standard

License

GPL-2

License flags

SPDX valid, OSI approved

History

Versions

1

First release

2022-12-13

Latest release

2022-12-13

Avg cadence

Cold removal rate

Dep drift

0

Per-file churn detail lives in the source pipeline: https://github.com/r-observatory/cran-code-metrics.

Dependency Network

Dependencies Reverse dependencies clue foreach matchFeat

Version History

1 tracked
new 1.0 Mar 10, 2026

R Observatory began tracking this package on Mar 10, 2026; it first appeared on CRAN Dec 13, 2022. Releases before tracking aren’t shown.