我想使用r中IPW包中的ipwtm函数来估计逆概率权重,
数据在这里
dat=data.frame(newid=c("A","A","A","A","B","B","B"),b6smk=c(0,0,1,1,0,0,0),sex=c(0,0,0,0,1,1,1),age=c(50,51,52,53,60,61,62),e7=c(1,1,2,2,3,2,2),starttime=c(-1,0,1,2,-1,0,1),fuptime=c(0,1,2,3,0,1,2)
temp <- ipwtm(
exposure = b6smk,
family = "survival",
numerator = ~ sex+age,
denominator = ~ sex+age+e7,
id = newid,
tstart = starttime,
timevar = fuptime,
type = "first",
data = dat)
我收到以下错误消息:
Error in split.default(tempdat$exposure, tempdat$id) :
first argument must be a vector
“b6smk”的类型是数字,我不知道为什么会出错。
如何解决这个错误?
我也面临着同样的问题。我尝试过这个,它有帮助。
haartdat
包中的 iptwm
中,所有变量都是数字类。https://www.rdocumentation.org/packages/ipw/versions/1.0-11/topics/ipwtm
iptwm
无法读取data.table
。在您的示例中,虽然 dat
是 data.frame
,但请继续提醒它。我在 ipwtm 上遇到了同样的问题。检查您的“id”的格式是否为数字。它也应该是数字。就我而言,id 的格式是字符,这就是问题所在。