Rpy2 - выбор результатов и вывод в файл CSV

В настоящее время я занимаюсь моделированием пропорциональных рисков Кокса с использованием Rpy2 - я думаю, что мой вопрос будет охватывать и другие функции, а также результаты их вызова.

После запуска функции у меня есть переменная, которая содержит результаты функции в виде вектора. Я попытался явно преобразовать это в 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

* ПРИМЕЧАНИЕ: было еще несколько переменных, для которых данные были представлены в первоначальных результатах (9000 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-балла или отношения проверки правдоподобия.

0 ответов

Другие вопросы по тегам