1

我目前正在使用 Rpy2 进行 Cox Proportional Hazards Modeling - 我想我的问题将涵盖其他函数以及调用它们的结果。

运行函数后,我有一个变量,其中包含函数的结果,以向量的形式。我已尝试将其显式转换为 DataFrame ( resultsDataFrame = DataFrame(resultVector))。执行此操作时没有返回错误。但是,当我这样做时,resultsDataFrame.to_csvfile(filename)会出现以下错误:

 Traceback (most recent call last):
 File "<pyshell#171>", line 1, in <module>
 modelFrame.to_csvfile('/Users/fortylashes/Documents/Matthews_Research/Cox_PH/ResultOutput_Exp1.csv')
 File "/Library/Python/2.7/site-packages/rpy2/robjects/vectors.py", line 1031, in to_csvfile
'col.names': col_names, 'qmethod': qmethod, 'append': append})
 RRuntimeError: Error in as.data.frame.default(x[[i]], optional = TRUE, stringsAsFactors = stringsAsFactors) : 
 cannot coerce class ""coxph"" to a data.frame

此外,当我只是这样做时:

 for result in resultVector:
        print (result)

我得到了一个非常长的结果列表——包括模型中使用的数据集中每个条目的信息,对于每个变量(因此 9,000 条记录 x 9 个变量 = 81,000 个不需要的结果)。我真正需要的结果在这个向量的底部,看起来像这样:

                    coef       exp(coef)  se(coef)      z       p
   age_age6574   -0.057775     0.944      0.05469   -1.056   2.9e-01
   age_age75plus -0.020795     0.979      0.04891   -0.425   6.7e-01
   sex_female    -0.005304     0.995      0.03961   -0.134   8.9e-01
   stage_late    -0.261609     0.770      0.04527   -5.779   7.5e-09
   access        -0.000494     1.000      0.00069   -0.715   4.7e-01

   Likelihood ratio test=36.6  on 5 df, p=7.31e-07  n= 9752, number of events= 2601

*注意:在初始结果中报告了更多变量的数据(我所说的 9,000 x 9),但实际上并未在模型中使用。

我想知道是否有一种方法可以显式获取这些数据,将其放在一个长有序的行中,然后将其输出到 csv 文件?

::::更新::::

当我打电话时,theModel.names我会得到一个可以通过数字索引调用的各种度量的列表:

 [1] "coefficients"      "var"               "loglik"           
 [4] "score"             "iter"              "linear.predictors"
 [7] "residuals"         "means"             "concordance"      
 [10] "method"            "n"                 "nevent"           
 [13] "terms"             "assign"            "wald.test"        
 [16] "y"                 "formula"           "call"   

从这里我可以得到系数,然后可以取幂。但是,我还没有找到我需要的 p 值、z 分数或似然检验比。

4

0 回答 0