Ошибка в rpy2 - Нет (не пропущено) наблюдений - PullRequest
1 голос
/ 26 июля 2011

Я работаю с rpy2 в Ubuntu 1104. Я слежу за файлом COX .Шаги, указанные в файле, находятся в R. Я должен сделать те же шаги в Python, используя rpy2.Я не получил никакого учебника с rpy2.Мне удалось написать следующее,

from rpy2.robjects.packages import importr
from rpy2.robjects import IntVector, Formula
import rpy2.robjects as ro
cox = importr("survival")
csv = ro.vectors.DataFrame.from_csvfile('Rossi.txt', header=True, sep=' ')
fmla = Formula('Surv(week, arrest) ~ fin + age + race + wexp + mar + paro + prio')
mod_aalison = cox.coxph (fmla, data=csv)

Но я получаю следующее сообщение об ошибке,

>>> mod_aalison = cox.coxph (fmla, data=csv)
Error in function (formula, data, weights, subset, na.action, init, control,  : 
  No (non-missing) observations
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib/python2.7/dist-packages/rpy2/robjects/functions.py", line 83, in __call__
    return super(SignatureTranslatedFunction, self).__call__(*args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/rpy2/robjects/functions.py", line 35, in __call__
    res = super(Function, self).__call__(*new_args, **new_kwargs)
rpy2.rinterface.RRuntimeError: Error in function (formula, data, weights, subset, na.action, init, control,  : 
  No (non-missing) observations

Я что-то пропустил?У меня нет опыта работы с R. Я не уверен, что данные в функции coxph должны быть в формате dataframe.Любая помощь приветствуется.

Это ссылка на Rossi.txt

1 Ответ

2 голосов
/ 28 июля 2011

Вы читаете данные, используя read.csv с sep, установленным на один пробел, в то время как файл имеет два пробела. Это заставляет R интерпретировать это как существование пустых столбцов, которые затем связываются с именами столбцов и в конечном итоге создают ошибку в coxph.

Считайте данные с read.table, и все должно быть в порядке.

...