data(plantdist)
plantsfm <- fullmatch(plantdist) # A full match with unrestricted
# treatment-control balance
pr <- logical(26)
pr[match(dimnames(plantdist)[[1]], names(plantsfm))] <- TRUE
table(plantsfm, # treatment-control balance,
ifelse(pr,'treated', 'control')) # by matched set
tapply(names(plantsfm), # largest treatment-control
plantsfm, FUN= function(x, dmat) { # distances, by matched set
max(
dmat[match(x, dimnames(dmat)[[1]]),
match(x, dimnames(dmat)[[2]])],
na.rm=TRUE )
}, dmat=plantdist)
plantsfm1 <- fullmatch(plantdist, # A full match with
min.controls=2, max.controls=3) # restrictions on matched sets'
# treatment-control balance
table(plantsfm1, # treatment-control balance is
ifelse(pr,'treated','control')) # improved by restrictions
tapply(names(plantsfm1), # but distances between
plantsfm1, FUN= function(x, dmat) { # matched units increase
max( # slightly
dmat[match(x, dimnames(dmat)[[1]]),
match(x, dimnames(dmat)[[2]])],
na.rm=TRUE )
}, dmat=plantdist)Run the code above in your browser using DataLab