我目前正在使用 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 分数或似然检验比。