Если вы выполнили сопоставление без замены (например, replace = FALSE
) и без связей (например, ties = FALSE
), это просто. Если dat
является вашим набором данных, а M
является выходом вызова Match()
, вы можете запустить
matched <- dat[c(M$index.treated, M$index.control),]
, и соответствующий набор данных будет сохранен в объекте matched
. Вы можете восстановить членство в паре, выполнив
matched$pair <- factor(rep(M$index.treated, 2)
При сопоставлении с заменой или со связями, это становится более сложным, поскольку некоторые единицы сопоставляются более чем с одним единицей в другой группе. Вы можете использовать один и тот же код для извлечения совпадающих единиц, но единицы появятся несколько раз и, следовательно, должны быть взвешены. Веса существуют в M$weights
, и для каждой пары есть один вес, поэтому необходимо повторить вес (т. Е. weights <- rep(M$weights, 2)
), чтобы получить вес для каждой единицы в новом наборе данных.
Если вы просто хотите получить подходящие веса для сопоставленного набора данных, независимо от того, как было выполнено сопоставление, без учета членства в паре, вы можете использовать функцию get.w()
в пакете cobalt
, которая извлекает веса, по одному для каждой единицы в исходном наборе данных , следующим образом:
weights <- get.w(M)
length(weights)
должно равняться nrow(dat)
.