r - Sekhon 从 R 中的 Matching 包中获取匹配的数据集
问题描述
我使用了 Sekhon 的匹配包,我的问题是获取匹配的数据集。该文档没有解释如何进行倾向得分匹配,它只解释了我没有使用的 genMatch。
解决方案
如果您在没有替换的情况下完成了匹配(即,replace = FALSE
)并且没有关系(即,ties = FALSE
),这很简单。如果dat
是您的数据集并且M
是调用的输出Match()
,您可以运行
matched <- dat[c(M$index.treated, M$index.control),]
并且匹配的数据集将存储在 object 中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)
。
推荐阅读
- microsoft-graph-api - 访问 Sharepoint 文档时来自 Graph API 的 UnknownError
- sql - 具有多个值列的数据透视表
- python - Python将对象属性写入文件
- scala - OpenPDF/iText 损坏的文档
- angular - ngFor 在 Angular 5 中,如 angularjs
- python - 解析 JSON Lines 文件
- node.js - nodejs找不到模块
- asp.net-mvc-4 - ELMAH 可以检测仅记录在事件日志中的 ASP.NET 异常吗?
- c++ - 为什么“新向量
[5]" 不创建向量数组? - bootstrapping - Next.js 客户端和服务器端引导代码