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

时间:2016-11-01 20:43:16

标签: r

我尝试与R包CEM进行粗略的精确匹配。我有一个观察数据框(没有遗漏的观察结果,对于列名见下文),我正在尝试:

  1. 用抑郁症(depres6mo)进行CEM作为匹配的治疗,然后
  2. 使用匹配的数据集执行线性回归,并使用鸦片剂作为结果(opiates_sum1yr)。
  3. 当我运行下面的代码时,我收到错误:

      

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

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

    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)  
    
      

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

1 个答案:

答案 0 :(得分:0)

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