我的原始帖子目前尚未得到答复且有些开放式,可以在这里找到
我一直在尝试弄清楚如何使用它,并将一些示例数据关联起来,我已经到达了哪里以及我当前的问题是什么。
因此,我的数据,或者更确切地说是我的数据的简短示例,如下所示:
zipcode xcoord ycoord age_age6574 age_age75plus sex_female stage_late death_death access TruncTime
51062 211253.4259 4733174.483 0 1 0 0 1 40 121
51011 212255.621 4757938.874 0 1 0 0 0 43 121
51109 215303.4471 4721047.303 0 1 1 1 0 21 121
该数据已经过预处理,因此存在虚拟/二进制变量代替实际类别age_age6574
- 并age_age75plus
构成一个类别,sex_female
另一个,stage_late
另一个,death_death
另一个。 Access
是一个连续变量。TruncTime
将被视为离散时间变量。将用作审查变量的变量将是death_death
.
调用函数:
因此,要导入我执行以下操作的所有内容:
from rpy2 import robjects
from rpy2.robjects.packages import importr
from rpy2.robjects.vectors import DataFrame
survival = importr('survival')
coxph = survival.coxph
Surv = survival.Surv
theData = DataFrame.from_csvfile(newDataFile, header=True, sep=',')
所以一切都准备好了考克斯比例危害 - 我想!
在 RI 内可以:
coxph(formula = Surv(TruncTime, death_death) ~ age_age6574 +
age_age75plus + sex_female + stage_late + access, method = "breslow")
一切正常。
当我在 Python 中做同样的事情时,使用我所描述的一切,我得到一个错误,内容如下:
这是函数调用:
coxph(Surv('TruncTime', 'death_death'), 'age_age6574'+'age_age75plus'+'sex_female'+'stage_late'+'access', data = theData, method = 'breslow')
这是返回的错误:
Error in (function (time, time2, event, type = c("right", "left", "interval", :
Time variable is not numeric
所以,我想知道我在函数调用中做错了什么(为什么它会返回这个错误)以及我如何正确调用它?此外,我还想知道是否有办法将censoring
'0' 更改为 '1'(反转审查变量的工作方式)?
::::更新::::
所以我发现我的部分问题是指定使用哪些列/属性。显然, rpy2 需要列的数字索引来调用函数。所以:
Surv(theData[9], theData[7])
为生存部分coxph
。该Surv
部分有效。
现在,我仍在尝试弄清楚如何指定其他所有内容。即:
-如何指定要在构建模型中使用的其他变量。使用+
in 将这些变量链接在一起存在问题。也~
不能像在常规 R 中那样工作。以下不工作
coxph(Surv(theData[9], theData[7])~theData[3]+theData[4]+theData[5]+theData[6]+theData[8], data = theData, method = 'breslow')
我还尝试用“,”替换“~”,例如:
coxph(Surv(theData[9], theData[7]), theData[3]+theData[4]+theData[5]+theData[6]+theData[8], data = theData, method = 'breslow')
- 这些肯定有问题,+
我不确定用~
a替换它,
是否真的有效。