由于PSM("Matchit"-Package and Method=full(,要获得匹配的对,我需要为我的纵向数据帧指定我的命令。每个病例都有几个观察结果,但我只需要每个患者的第一个观察结果就可以纳入匹配。因此,匹配应该基于每个患者的第一次观察,但我后来的分析应该包括每个患者的完整数据集和所有观察。
有人知道如何做到这一点吗?
我尝试使用数据子集(每个患者的第一次观察(,但无法使用";Match.data";。
提前感谢西蒙(拼命写硕士论文(
我的经验是,您只想在第一个时间点创建匹配,但要在所有时间点为每个单元识别这些匹配。幸运的是,这非常简单:只需在第一个时间点执行匹配,然后将匹配的数据集与完整的数据集合并。下面是它的样子。假设您的原始长数据集是d
,它有一个ID列id
和一个时间列time
。
m <- matchit(treat ~ X1 + X2, data = subset(d, time == 1), method = "full")
md1 <- match.data(m)
d <- merge(d, md1[c("id", "subclass", "weights")], by = "id", all.x = TRUE)
您的新数据集应该有两个新列,subclass
和weights
,它们包含每个单元的匹配子类和匹配权重。具有相同ID的行(即,在多个时间点对应于相同单元的行(将具有相同的subclass
和weight
值。