繁体   English   中英

包Optmatch错误消息

[英]Package Optmatch Error Message

我正在尝试在Roptmatch中对一些示例数据使用函数:

> tmp
  id dose        Pred
1  1    2  0.08494142
2  1    2 -0.02784262
3  1    2 -0.05284574
4  1    2 -0.07428686
5  1    3  0.04335151

可以使用以下代码重新创建:

tmp <- data.frame(id = rep(1,5), dose = c(rep(2,4),3), 
                  Pred = c(0.08494142, -0.02784262,
                           -.05284574, -0.07428686,
                           0.04335151))

当我运行代码时:

pair(x = tmp$Pred, z = tmp$dose, data=tmp, remove.unmatchables = TRUE)

我收到以下错误:

Error in toZ(z) : Treatment indicator must have exactly 2 levels not 1

但是,从数据框中可以看出,治疗指标可变剂量只有两个级别:2或3。

使用函数getAnywhere,我可以打印出函数toZ的部分(由pair调用),该部分可能会产生错误:

> getAnywhere(toZ)
[Lines omitted]
function (x) 
{
[Lines of code omitted]
if (length(unique(x)) != 2) {
        stop(paste("Treatment indicator must have exactly 2 levels not", 
            length(unique(x))))
}

为了证实我的怀疑,我运行以下命令:

> length(unique(tmp$dose))
[1] 2

确认治疗指标确实确实有2个等级。 我很困惑。 任何帮助将不胜感激。

这是optmatch中的错误 我们有一个修复程序,它将在下一个发行版本中。 目前,解决方法是从数字处理指标构造一个逻辑变量。 例如

tmp$dose2 <- tmp$dose == 3

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM