# Specify a matching problem where units in a common factor cannot be matched.

### Description

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.

### Usage

1 | ```
antiExactMatch(x, z)
``` |

### Arguments

`x` |
A factor across which matches should be allowed. |

`z` |
A treatment indicator factor (a numeric vector of 1 and 0, a logical vector, or a 2 level factor). |

### 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`

).

### Value

A distance specification that encodes the across factor level constraint.

### See Also

`exactMatch`

, `match_on`

, `caliper`

, `fullmatch`

, `pairmatch`

### Examples

1 2 3 4 5 6 7 8 9 10 11 | ```
data(nuclearplants)
# force entries to be within the same factor:
em <- fullmatch(exactMatch(pr ~ pt, data = nuclearplants), data = nuclearplants)
table(nuclearplants$pt, em)
# 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)
``` |