Native rmorie implementation: units are stratified on the exact
combination of exact_vars; strata containing both arms are
retained and controls receive CEM-style stratum weights
(weights and subclass columns on the matched data).
No MatchIt at runtime.
Examples
# \donttest{
set.seed(1)
df <- data.frame(d = rbinom(200, 1, 0.4),
region = sample(c("N", "S", "E", "W"), 200, TRUE),
year = sample(2019:2021, 200, TRUE))
morie_matching_exact(df, "d", c("region", "year"))
#> $matched_data
#> d region year weights subclass
#> 1 0 W 2019 1.40963855 10
#> 2 0 S 2019 0.86746988 7
#> 3 0 N 2021 0.06712565 6
#> 4 1 S 2020 1.00000000 8
#> 5 0 S 2021 1.64457831 9
#> 6 1 S 2019 1.00000000 7
#> 7 1 E 2021 1.00000000 3
#> 8 1 N 2019 1.00000000 4
#> 9 1 S 2021 1.00000000 9
#> 10 0 E 2021 0.80550775 3
#> 11 0 E 2020 1.64457831 2
#> 12 0 E 2019 0.98674699 1
#> 13 1 E 2020 1.00000000 2
#> 14 0 S 2019 0.86746988 7
#> 15 1 E 2019 1.00000000 1
#> 16 0 N 2021 0.06712565 6
#> 17 1 E 2020 1.00000000 2
#> 18 1 W 2020 1.00000000 11
#> 19 0 W 2021 0.70481928 12
#> 20 1 N 2019 1.00000000 4
#> 21 1 S 2019 1.00000000 7
#> 22 0 W 2021 0.70481928 12
#> 23 1 S 2020 1.00000000 8
#> 24 0 W 2019 1.40963855 10
#> 25 0 S 2021 1.64457831 9
#> 26 0 E 2021 0.80550775 3
#> 27 0 W 2019 1.40963855 10
#> 28 0 N 2021 0.06712565 6
#> 29 1 N 2020 1.00000000 5
#> 30 0 W 2019 1.40963855 10
#> 31 0 N 2020 1.26867470 5
#> 32 0 E 2020 1.64457831 2
#> 33 0 E 2020 1.64457831 2
#> 34 0 N 2019 2.01376936 4
#> 35 1 N 2020 1.00000000 5
#> 36 1 W 2019 1.00000000 10
#> 37 1 S 2019 1.00000000 7
#> 38 0 S 2019 0.86746988 7
#> 39 1 W 2020 1.00000000 11
#> 40 0 S 2020 1.87951807 8
#> 41 1 W 2019 1.00000000 10
#> 42 1 W 2021 1.00000000 12
#> 43 1 E 2020 1.00000000 2
#> 44 0 S 2021 1.64457831 9
#> 45 0 N 2021 0.06712565 6
#> 46 1 W 2021 1.00000000 12
#> 47 0 E 2019 0.98674699 1
#> 48 0 W 2021 0.70481928 12
#> 49 1 N 2019 1.00000000 4
#> 50 1 S 2019 1.00000000 7
#> 51 0 N 2019 2.01376936 4
#> 52 1 W 2020 1.00000000 11
#> 53 0 E 2019 0.98674699 1
#> 54 0 N 2020 1.26867470 5
#> 55 0 N 2021 0.06712565 6
#> 56 0 E 2019 0.98674699 1
#> 57 0 W 2021 0.70481928 12
#> 58 0 E 2019 0.98674699 1
#> 59 1 N 2019 1.00000000 4
#> 60 0 W 2021 0.70481928 12
#> 61 1 W 2019 1.00000000 10
#> 62 0 N 2021 0.06712565 6
#> 63 0 N 2021 0.06712565 6
#> 64 0 N 2021 0.06712565 6
#> 65 1 N 2020 1.00000000 5
#> 66 0 W 2019 1.40963855 10
#> 67 0 N 2019 2.01376936 4
#> 68 1 N 2020 1.00000000 5
#> 69 0 W 2021 0.70481928 12
#> 70 1 S 2021 1.00000000 9
#> 71 0 S 2020 1.87951807 8
#> 72 1 S 2021 1.00000000 9
#> 73 0 N 2019 2.01376936 4
#> 74 0 W 2021 0.70481928 12
#> 75 0 N 2021 0.06712565 6
#> 76 1 N 2021 1.00000000 6
#> 77 1 S 2021 1.00000000 9
#> 78 0 S 2019 0.86746988 7
#> 79 1 S 2019 1.00000000 7
#> 80 1 W 2021 1.00000000 12
#> 81 0 S 2021 1.64457831 9
#> 82 1 S 2019 1.00000000 7
#> 83 0 N 2019 2.01376936 4
#> 84 0 S 2019 0.86746988 7
#> 85 1 W 2019 1.00000000 10
#> 86 0 S 2019 0.86746988 7
#> 87 1 S 2021 1.00000000 9
#> 88 0 W 2021 0.70481928 12
#> 89 0 S 2019 0.86746988 7
#> 90 0 W 2020 0.93975904 11
#> 91 0 N 2021 0.06712565 6
#> 92 0 N 2021 0.06712565 6
#> 93 1 W 2021 1.00000000 12
#> 94 1 W 2020 1.00000000 11
#> 95 1 E 2020 1.00000000 2
#> 96 1 W 2019 1.00000000 10
#> 97 0 W 2020 0.93975904 11
#> 98 0 N 2021 0.06712565 6
#> 99 1 S 2020 1.00000000 8
#> 100 1 W 2020 1.00000000 11
#> 101 1 N 2020 1.00000000 5
#> 102 0 N 2019 2.01376936 4
#> 103 0 E 2019 0.98674699 1
#> 104 1 N 2019 1.00000000 4
#> 105 1 E 2019 1.00000000 1
#> 106 0 N 2020 1.26867470 5
#> 107 0 S 2019 0.86746988 7
#> 108 0 S 2019 0.86746988 7
#> 109 1 S 2020 1.00000000 8
#> 110 0 W 2020 0.93975904 11
#> 111 1 E 2019 1.00000000 1
#> 112 1 N 2019 1.00000000 4
#> 113 0 E 2019 0.98674699 1
#> 114 0 N 2021 0.06712565 6
#> 115 0 N 2020 1.26867470 5
#> 116 0 N 2020 1.26867470 5
#> 117 1 E 2019 1.00000000 1
#> 118 0 N 2020 1.26867470 5
#> 119 0 E 2021 0.80550775 3
#> 120 1 S 2021 1.00000000 9
#> 121 1 N 2019 1.00000000 4
#> 122 0 W 2020 0.93975904 11
#> 123 0 W 2019 1.40963855 10
#> 124 0 E 2019 0.98674699 1
#> 125 1 E 2020 1.00000000 2
#> 126 0 W 2019 1.40963855 10
#> 127 0 W 2019 1.40963855 10
#> 128 0 S 2019 0.86746988 7
#> 129 0 W 2019 1.40963855 10
#> 130 0 N 2020 1.26867470 5
#> 131 0 E 2020 1.64457831 2
#> 132 0 S 2021 1.64457831 9
#> 133 0 W 2020 0.93975904 11
#> 134 1 W 2019 1.00000000 10
#> 135 1 N 2019 1.00000000 4
#> 136 0 W 2020 0.93975904 11
#> 137 0 S 2020 1.87951807 8
#> 138 0 E 2019 0.98674699 1
#> 139 1 W 2019 1.00000000 10
#> 140 0 N 2021 0.06712565 6
#> 141 1 W 2021 1.00000000 12
#> 142 1 W 2019 1.00000000 10
#> 143 0 S 2021 1.64457831 9
#> 144 0 S 2020 1.87951807 8
#> 145 1 S 2020 1.00000000 8
#> 146 0 N 2021 0.06712565 6
#> 147 0 N 2021 0.06712565 6
#> 148 1 W 2019 1.00000000 10
#> 149 0 W 2021 0.70481928 12
#> 150 1 N 2019 1.00000000 4
#> 151 1 N 2020 1.00000000 5
#> 152 0 S 2019 0.86746988 7
#> 153 0 N 2019 2.01376936 4
#> 154 0 W 2021 0.70481928 12
#> 155 0 N 2020 1.26867470 5
#> 156 0 W 2020 0.93975904 11
#> 157 0 E 2020 1.64457831 2
#> 158 0 S 2019 0.86746988 7
#> 159 0 E 2021 0.80550775 3
#> 160 0 N 2021 0.06712565 6
#> 161 0 E 2021 0.80550775 3
#> 162 1 S 2020 1.00000000 8
#> 163 0 N 2020 1.26867470 5
#> 164 1 W 2020 1.00000000 11
#> 165 1 W 2019 1.00000000 10
#> 166 0 N 2021 0.06712565 6
#> 167 0 W 2021 0.70481928 12
#> 168 0 S 2019 0.86746988 7
#> 169 1 E 2021 1.00000000 3
#> 170 0 E 2021 0.80550775 3
#> 171 1 E 2019 1.00000000 1
#> 172 1 E 2020 1.00000000 2
#> 173 1 S 2019 1.00000000 7
#> 174 0 W 2020 0.93975904 11
#> 175 0 N 2021 0.06712565 6
#> 176 1 W 2021 1.00000000 12
#> 177 1 S 2020 1.00000000 8
#> 178 1 N 2020 1.00000000 5
#> 179 1 N 2020 1.00000000 5
#> 180 1 E 2019 1.00000000 1
#> 181 0 S 2020 1.87951807 8
#> 182 0 W 2019 1.40963855 10
#> 183 1 E 2019 1.00000000 1
#> 184 0 E 2020 1.64457831 2
#> 185 1 E 2020 1.00000000 2
#> 186 0 S 2020 1.87951807 8
#> 187 1 S 2021 1.00000000 9
#> 188 1 N 2019 1.00000000 4
#> 189 1 E 2021 1.00000000 3
#> 190 0 W 2020 0.93975904 11
#> 191 1 E 2021 1.00000000 3
#> 192 0 N 2021 0.06712565 6
#> 193 0 W 2021 0.70481928 12
#> 194 1 S 2020 1.00000000 8
#> 195 0 N 2020 1.26867470 5
#> 196 0 E 2019 0.98674699 1
#> 197 0 E 2021 0.80550775 3
#> 198 1 N 2020 1.00000000 5
#> 199 0 N 2021 0.06712565 6
#> 200 1 S 2019 1.00000000 7
#>
#> $n_treated
#> [1] 83
#>
#> $n_matched_control
#> [1] 117
#>
#> $match_pairs
#> [1] treated_idx control_idx distance
#> <0 rows> (or 0-length row.names)
#>
#> $method
#> [1] "exact (rmorie native)"
#>
#> $details
#> $details$engine
#> [1] "native-exact"
#>
#> $details$exact_vars
#> [1] "region" "year"
#>
#> $details$n_strata
#> [1] 12
#>
#> $details$l1_before
#> [1] 0.2298424
#>
#>
#> attr(,"class")
#> [1] "morie_match_result" "list"
# }
