Specify a matching problem where units in a common factor cannot be matched.
Source:R/exactMatch.R
antiExactMatch.Rd
This function builds a distance specification where treated units are infinitely far away from control units that share the same level of a given factor variable. This can be useful for ensuring that matched groups come from qualitatively different groups.
Details
The exactMatch
function provides a way of specifying
a matching problem where only units within a factor level may be
matched. This function provides the reverse scenario: a matching
problem in which only units across factor levels are permitted to
match. Like exactMatch
, the results of this function will
most often be used as a within
argument to
match_on
or another distance specification creation
function to limit the scope of the final distance specification
(i.e., disallowing any match between units with the same value on
the factor variable x
).
Examples
data(nuclearplants)
# force entries to be within the same factor:
em <- fullmatch(exactMatch(pr ~ pt, data = nuclearplants), data = nuclearplants)
table(nuclearplants$pt, em)
#> em
#> 0.1 0.2 0.3 0.4 0.5 0.6 0.7 1.1 1.2 1.3
#> 0 2 2 2 2 2 2 14 0 0 0
#> 1 0 0 0 0 0 0 0 2 2 2
# force treated and control units to have different values of `pt`:
z <- nuclearplants$pr
names(z) <- rownames(nuclearplants)
aem <- fullmatch(antiExactMatch(nuclearplants$pt, z), data = nuclearplants)
table(nuclearplants$pt, aem)
#> aem
#> 1.1 1.10 1.2 1.3 1.8 1.9
#> 0 4 16 1 2 2 1
#> 1 1 1 1 1 1 1