r - microsynth 函数中的错误“if (dum <= dum1 + 1) { : 需要 TRUE/FALSE 的缺失值”
问题描述
谁能帮我弄清楚为什么我会收到该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
任何建议将不胜感激!
解决方案
调试代码后,似乎在microsynth
处理tibble
对象方面存在一些问题;至少那肯定是第二个错误的来源:函数newreshape
尝试运行time.tmp <- data[,timevar]
,当应用于小标题时不会提取向量(这会导致问题进一步下降)——它应该是例如time.tmp <- dplyr::pull(data, timevar)
。
即使修复了这个问题,仍然有更多错误,所以我会data.frame
在运行代码之前尝试将数据转换为 a,这对我有用:
sea1 <- microsynth(as.data.frame(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))
这有帮助吗?
推荐阅读
- python - 使用 numba 重载时 Python 内核死机
- python - DJANGO - 如何让我的用户连接到他们的日历?
- python - 以非危险方式基于布尔值选择行
- angular - 如何使用 jasmine-karna 对 Angular 中的嵌套函数进行单元测试
- python - 从鼠标悬停元素中提取链接
- java - 休眠 3 - 5 迁移。Org.hibernate.Criteria:使用 CriteriaBuilder 将 createCriteria(字符串关联,字符串别名)更改为标准 JPA
- python - 如何用自己的生成器覆盖 Python 的随机数?
- algorithm - 待命调度算法
- c# - 为什么我的存储过程在此 Windows 窗体上没有返回任何内容?
- c# - 如何在 switch 表达式中忽略一种元组类型?