3

PythonからR関数を呼び出すためにrpy2を使用しています。

from rpy2.robjects import *
result=r.someFunctioninR()   #someFunctioninR is a R function written by myself
if result==r('as.null()'):
     do something
else:
     do something else

によって返される「結果」はsomeFunctioninR()、NULL またはその他の形式のいずれかです。result==r('as.null()')動作しません。結果がNULLのときにTrueを取得できる他の方法はありますか?

4

1 に答える 1

5

rpy2.rinterface.NULLまたはを試してくださいrobj.r("NULL")

In [1]: from rpy2 import robjects as robj

NULL を返す R 関数を作成します。

In [2]: robj.r("nullfn = function(){NULL}")
Out[2]: <SignatureTranslatedFunction - Python:0x104ea5ef0 / R:0x1058be4a8>

In [3]: result = robj.r.nullfn()

In [4]: print result
NULL

In [5]: print result == robj.rinterface.NULL
True

In [6]: print result == None
False

編集:上記のコードがそのまま機能することに気付きました。あなたのエラーはおそらく r.someFunctionInR() の戻り値の型が原因だと思います-NULL値のベクトルを返す可能性はありますか? の値を印刷しようとしましたresultか? これが機能しない場合は、何が何でsomeFunctionInR()あるかを共有できます。

于 2012-10-18T00:10:20.637 に答える