我正在使用R包matchit进行倾向得分匹配分析。
m.out3<-matchit(data=b4psm5, treat~high_school_gpa+male+pell+black+hispanic+asian+other+race_miss,method="nearest", ratio=1,exact=c("cohortid"), m.order="random", caliper=0.25)
所有变量都在数据中,但是我收到此错误消息,我认为这与精确匹配的命令有关。
Error in Ops.data.frame(exact[itert, k], exact[clabels, k]) :
‘!=’ only defined for equally-sized data frames
你能建议吗?我没有可复制的数据集。
答案 0 :(得分:0)
这可能是因为语法错误。如果公式(带有~
的部分)不是第一个参数,则需要将其标记为formula=
。因此,尝试运行以下代码,看看是否收到错误:
m.out3 <- matchit(data = b4psm5,
formula = treat ~ high_school_gpa + male + pell +
black + hispanic + asian + other + race_miss,
method="nearest", ratio=1, exact=c("cohortid"),
m.order="random", caliper=0.25)
通常将公式指定为第一个参数,因此不需要formula=
标记,但是您将其指定为第二个参数,因此R不知道模型公式提供的内容进入formula
参数。