我目前正在使用Rpy2进行Cox比例风险建模 - 我想我的问题将涵盖其他功能以及调用它们的结果。
运行函数后,我有一个变量,它以向量的形式包含函数的结果。我已经尝试将其明确转换为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文件?
:::: UPDATE ::::
当我致电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分数或似然检验比率。