有人能帮我解决这个错误吗?
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
感谢你的关注。
1条答案
按热度按时间jgzswidk1#
我遇到了同样的问题,这告诉你
treatment
(procedure
)不包含0和1之间的值。最有可能的情况是你有缺失值,在这种情况下,设置na.omit()
或检查任何可能的变量转换,导致它不仅仅有0和1的值。