我有面板数据,我正在应用倾向分数匹配。我已经使用CBPS包装中的以下代码估算了完整样本的模型。如何迭代运行模型
form1 <- (treat ~ X)
fit <- CBPS(formula=form1, data = paper1, time=year, id= bankid, ATT = TRUE)
我想每年单独匹配一年。我正在使用if条件来达到这个目的,并且我运行了下面的代码。
if (year==2001){
m.out1 <- matchit(t1 ~ fitted(fit), method = "nearest", data = paper1, replace = TRUE)
}
但是,会生成以下警告。
警告消息: 在如果(年== 2001){: 状况已经长度> 1且仅第一个元素将被用来
如何可以执行期望的任务?
我用Blackwell数据集复制了这个问题。完整的代码如下所示: - 数据集中有一个时间标识。如果时间等于1,我想匹配。尽管如此,我已经在完整示例上运行了该模型。
library(CBPS)
data("Blackwell")
attach(Blackwell)
form1<-"d.gone.neg ~ d.gone.neg.l1 + d.gone.neg.l2 + d.neg.frac.l3 + camp.length + camp.length + deminc + base.poll + year.2002 + year.2004 + year.2006 + base.und + office"
fit <- CBPS(formula=form1, data = Blackwell, time=time, id= demName, ATT = TRUE)
m.out <- matchit(d.gone.neg ~ fitted(fit), method = "nearest", data = Blackwell, replace = TRUE)
summary(m.out)
if (time==1){
m.out1 <- matchit(d.gone.neg ~ fitted(fit), method = "nearest", data = Blackwell, replace = TRUE)
}
请检查了这一点http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example –
我提供了可再现的代码@ Hack-R。我在单独的答复中提供了我的帖子。寻找你的回应。 –
太棒了!谢谢。我们只需要将它从答案部分移回原来的问题。我现在正在工作,但我会尽快提供帮助。 –