R 包 CEM:“[.data.frame”(TEi,idt) 中出现错误:选择了未定义的列

Chl*_*ell 3 r

我正在尝试与 R 包执行粗化精确匹配CEM。我有一个观察数据框(没有缺失的观察结果,有关名称请参见下文),并且正在尝试:

  1. 执行 CEM 和抑郁症 (depres6mo) 作为匹配治疗,然后
  2. 使用匹配的数据集执行线性回归,并将阿片类药物作为结果 (opiates_sum1yr)。

当我运行下面的代码时,出现错误:

(TEi, idt)中的错误[.data.frame:选择了未定义的列

但是,我已经仔细检查过我要回归的所有变量都是数据框中的变量。知道发生了什么事吗?

colnames(nonMissing)  
# [1] "depres6mo"      "alcohol"        "obesity"        "ageGrp"         "sex"            "geoRegion"     
# [7] "year"           "multi_lami"     "multi_fusion"   "single_lami"    "instr"          "htn"           
# [13] "chf"            "copd"           "MI"             "diab_u"         "diab_c"         "drug"          
# [19] "tbco"           "planType"       "opiates_sum1yr" "daily"   


mod_match <-  cem(treatment = "depres6mo", data = nonMissing, drop = c("opiates_sum1yr", "daily"))  
opiatesLin <- att(mod_match, opiates_sum1yr ~ depres6mo + alcohol + obesity + ageGrp + sex + geoRegion + year + multi_lami + multi_fusion + single_lami + instr + htn + chf + copd + MI + diab_u + diab_c + drug + tbco + planType, data = nonMissing)  
Run Code Online (Sandbox Code Playgroud)

(TEi, idt)中的错误[.data.frame:选择了未定义的列

小智 5

我收到了同样的错误,发现这是因为我使用 tidyverse 时我的 data_frame 是一个 tibble。一旦我切换到 data.frame() 而不是 data_frame(),att() 就起作用了。