R语言 处理阿萨二元变量

cbeh67ev  于 2023-10-13  发布在  其他
关注(0)|答案(1)|浏览(208)

有人能帮我解决这个错误吗?

Error: The treatment must be a binary variable.

尝试继续运行以下代码行,无法找出问题所在以及为什么会发生这种情况,尽管在运行mutate函数之后,这是matchit函数相互需要的。

library(Matching)
    library(MatchIt)
    library(cobalt)
    library(WeightIt)
    library(twang)
    library(tidyverse)
    library(Hmisc)
    library(emmeans)
    library(rms)
    library(rpart) 
    library(randomForest)
    library(survey)
    library(glue)
    library(nnet)    
    
    set.seed(1)
        matching_lg_1 <- map(
          .x = ratios, ~ matchit(
            A ~ B + C + D + E + F + G +
              H + J, data = data %>% 
            mutate(A = if_else(A =='1', 1, 0), .data = cardio_db_matched), 
            distance = "logit", method = "nearest", ratio = .x, caliper = 0.2,
            m.order = "random", replace = FALSE
          )
        ) %>%
          set_names(x = ., nm = c("ratio_1:1", "ratio_1:2"))

原始数据集中的变量可以假定为以下值:

1
2

感谢你的关注。

jgzswidk

jgzswidk1#

我遇到了同样的问题,这告诉你treatmentprocedure)不包含0和1之间的值。最有可能的情况是你有缺失值,在这种情况下,设置na.omit()或检查任何可能的变量转换,导致它不仅仅有0和1的值。

相关问题