如何用MatchThem正确提取1:1匹配后的13例对照与病例数据集?
用MatchThem匹配后提取数据集的正确方法
你用complete()肯定不对,那是用来补全缺失数据组合的,根本不是干这个的。MatchThem是基于MatchIt做匹配的,提取匹配后数据集得用专门的方法:
先假设你是这么执行匹配的:
library(MatchThem) # treat是分组变量,1代表病例,0代表对照 match_result <- matchthem(treat ~ 协变量1 + 协变量2 + 协变量3, data = 你的数据集, method = "nearest", replace = FALSE, ratio = 1)提取匹配后数据集直接用
match.data()函数就行:matched_data <- match.data(match_result)这个函数会自动把没匹配上的6个对照筛掉,留下13对匹配好的样本,总26行数据。
另外也可以通过权重列筛选,匹配成功的样本权重为1,未匹配的为0:
matched_data <- 你的数据集[match_result$weights == 1, ]
之前用complete()没用,是因为它的功能是补全缺失的变量组合,不是筛选匹配样本,自然会保留原数据集的所有样本。
内容的提问来源于stack exchange,提问作者SesameCat
相关产品推荐
相关产品推荐

