ipwtm 函数:第一个参数是向量

问题描述 投票:0回答:2

我想使用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”的类型是数字,我不知道为什么会出错。

如何解决这个错误?

r
2个回答
1
投票

我也面临着同样的问题。我尝试过这个,它有帮助。

  1. 将所有变量转为数值类。在
    haartdat
    包中的
    iptwm
    中,所有变量都是数字类。

https://www.rdocumentation.org/packages/ipw/versions/1.0-11/topics/ipwtm

  1. iptwm
    无法读取
    data.table
    。在您的示例中,虽然
    dat
    data.frame
    ,但请继续提醒它。

0
投票

我在 ipwtm 上遇到了同样的问题。检查您的“id”的格式是否为数字。它也应该是数字。就我而言,id 的格式是字符,这就是问题所在。

© www.soinside.com 2019 - 2024. All rights reserved.