Sekhon从R中的Matching包中获取匹配的数据集。

问题描述 投票:0回答:1

我使用了Sekhon的匹配包,问题是如何获得匹配的数据集。文档中没有解释如何进行倾向得分匹配,只解释了我没有使用的genMatch。

r standards effects confidence-interval
1个回答
0
投票

如果你已经做了没有替换的匹配(即, 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).

© www.soinside.com 2019 - 2024. All rights reserved.