[英]Package Optmatch Error Message
我正在嘗試在R包optmatch中對一些示例數據使用對函數:
> 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.