2011-07-26 5 views
1

私はUbuntu 1104でrpy2を使って作業しています。COXファイルに従っています。ファイルで与えられた手順はRです。私はPythonでrpy2を使って同じ手順を実行する必要があります。 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のデータがデータフレーム形式である必要があるかどうかわかりません。 何か助けていただければ幸いです。

これは、ファイルが2つのスペースを持っていながら、あなたは、1つのスペースに9月のセットでread.csvを使用してデータを読み取るRossi.txt

答えて

2

へのリンクです。これにより、Rはこれを空の列の存在として解釈し、列名を混乱させ、最後にcoxphにエラーを作成します。

read.tableでデータを読んでください。問題ありません。

+1

こんにちはmbq、あなたのansのthnks。それは働いて私を助けました。また指摘すると、RPY2は** arrest **のような列名を** X.arrestに変更しています**これは起こるべきではありません。 '>>> print csv.colnames [1]" X.week。 " "X.arrest。" "X.fin。" "X.age。" "X.race" "X.wexp。" [7] "X.mar" "X.paro" "X.prio" "X.educ。" "X.emp1。" "X.emp2" [13] "X.emp3。" "X.emp4。" "X.emp5" "X.emp6" "X.emp7" "X.emp8。" ' – Netro

+0

私も' X < - cbind(var1、var2、... varn) 'を使ってこれを解決しますか? –

関連する問題