簡體   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