rpy2-无(非缺失)观察中的错误

时间:2011-07-26 07:26:28

标签: python r rpy2

我正在使用Ubuntu 1104上的rpy2。我正在关注COX文件。文件中给出的步骤在R中。我必须使用rpy2在python中执行相同的步骤。 我没有得到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中的数据是否必须采用数据帧格式。 任何帮助表示赞赏。

这是指向Rossi.txt

的链接

1 个答案:

答案 0 :(得分:2)

您使用read.csv读取数据,并将sep设置为单个空格,而文件有两个空格。这使得R将其解释为存在空列,然后混淆列名并最终在coxph中创建错误。

使用read.table读取数据,它应该没问题。