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-балла или отношения проверки правдоподобия.