1

Ubuntu1104で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へのリンクです

4

1 に答える 1

2

read.csvファイルに2つのスペースがあるのに対し、sepを1つのスペースに設定してデータを読み取ります。これにより、Rはこれを空の列の存在として解釈し、列名を混乱させ、最終的にでエラーを作成しますcoxph

でデータを読み取るとread.table、問題ないはずです。

于 2011-07-28T12:18:38.837 に答える