“环境”类型的R对象不是子集表

时间:2014-01-31 10:16:45

标签: r survival-analysis cox-regression

我正在使用区间删失数据进行生存分析,我正在尝试使用incox包中的intcox()函数进行Cox回归。我已经用survfit()完成了部分分析,一切正常。

当我尝试使用intcox时,总会出现问题:

> intcox(Surv(tempo2,tempo1,type="interval2")~dados$sexo)
Error in copy.data[ord, ] : 
  object of type 'environment' is not subsettable

> intcox(Surv(tempo2,tempo1,type="interval2")~sexo, data=dados)
Error in if (any(derivs.wert$g1 <= 0)) { : 
  missing value where TRUE/FALSE needed
In addition: Warning messages:
1: In Surv(data$mix, lokal.cens) : Invalid status value, converted to NA
2: In coxph(formula, data) : X matrix deemed to be singular; variable 1
爸爸$ sexo是一个有三个级别的因子,爸爸是一个包含156个观察和52个变量的列表。进行Kaplan-Meier分析或使用没有间隔数据的coxph()时没有问题。当我使用其他变量时,问题似乎是一样的 我正在使用R 3.0.1

**更新**
我没有更改任何内容,现在错误看起来像这样:

> intcox(Surv(tempo2,tempo1,type="interval2")~dados$sexo)
Error in intcox(Surv(tempo2, tempo1, type = "interval2") ~ dados$sexo) : 
  Invalid cens status

> intcox(Surv(tempo2,tempo1,type="interval2")~sexo, data=dados)
Error in intcox(Surv(tempo2, tempo1, type = "interval2") ~ sexo, data = dados) : 
  Invalid cens status

1 个答案:

答案 0 :(得分:1)

  1. 第一个问题,

    >intcox(Surv(tempo2,tempo1,type="interval2")~sexo, data=dados)
    Error in if (any(derivs.wert$g1 <= 0)) { : 
    missing value where TRUE/FALSE needed
    In addition: Warning messages:
    1: In Surv(data$mix, lokal.cens) : Invalid status value, converted to NA
    2: In coxph(formula, data) : X matrix deemed to be singular; variable 1
    
  2. 这是由于你的变量是数据框中其他变量的线性组合,这使得X矩阵非单数,这是第二个警告所暗示的。

    coxph可以通过将这些变量的系数设置为NA来处理这种非奇异问题。但是,不幸的是,这个intcox包不是很强大。一种解决方案是首先使用一些线性模型找出这些变量,并从数据框中消除它们。然后你走了。

    1. 对于你的第二个问题,

      > intcox(Surv(tempo2,tempo1,type="interval2")~sexo, data=dados)
      Error in intcox(Surv(tempo2, tempo1, type = "interval2") ~ sexo, data = dados) : 
        Invalid cens status
      
    2. 可能您没有以正确的方式制定数据集。我无法提供更多帮助,因为您没有提供有关变量tempo1和tempo2含义的更多信息。