有人能帮我弄清楚为什么我在使用 microsynth
函数时会出现错误代码吗?
我认为我已经按照教程的描述准确地设置了数据,包括一个ID变量、一个时间变量(数值型)和一个二元治疗变量。
当我运行以下代码时:
cov.var <- c("age", "sex", "ethgr2", "hh_size", "country_4",
"inc_imp", "nssec4", "ten1", "num_adult")
match.out <- c("ov_1", "ov_2", "ov_3", "ov_4")
synth1 <- microsynth(DS,
idvar="seriali", timevar="year_2", intvar="treated",
start.pre=1, end.pre=6, end.post=9,
match.out=match.out, match.covar=cov.var,
result.var=match.out, omnibus.var=match.out,
test="lower",
n.cores = min(parallel::detectCores(), 2))
我遇到了这个错误:
Error in if (dum <= dum1 + 1) { : missing value where TRUE/FALSE needed
R没有提供错误发生位置的回溯信息。此外,在查看函数源代码时,我无法看到我可以提供TRUE/FALSE的位置。
我尝试按照 microsynth 教程来查看是否能够重现错误。然而,我得到了不同的错误。
data(seattledmi)
set.seed(99199)
cov.var <- c("TotalPop", "BLACK", "HISPANIC", "Males_1521", "HOUSEHOLDS",
"FAMILYHOUS", "FEMALE_HOU", "RENTER_HOU", "VACANT_HOU")
match.out <- c("i_felony", "i_misdemea", "i_drugs", "any_crime")
sea1 <- microsynth(seattledmi,
idvar="ID", timevar="time", intvar="Intervention",
start.pre=1, end.pre=12, end.post=16,
match.out=match.out, match.covar=cov.var,
result.var=match.out, omnibus.var=match.out,
test="lower",
n.cores = min(parallel::detectCores(), 2))
sea1
Error in colnames(newdat) : object 'newdat' not found
任何建议都将不胜感激!
debug()
或debugonce()
。这可能会更有帮助给开发者。 - Dan Chaltiel