0
我試圖使用對功能在ř包optmatch上一些示例數據:包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(其由一對稱爲),其推測生成錯誤的部分:
> 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級。我很困惑。任何幫助將不勝感激。
懷疑錯誤來自'remove.unmatchables = TRUE'。你的單身人士,治療觀察正在被放棄。 – lmo