我正在使用 rpy2 从 python 调用 R 函数。
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
Run Code Online (Sandbox Code Playgroud)
返回的“结果”someFunctioninR()可以是NULL或其他格式。result==r('as.null()')不起作用。当结果为 NULL 时,还有其他方法可以得到 True 吗?
尝试rpy2.rinterface.NULL或robj.r("NULL"):
In [1]: from rpy2 import robjects as robj
Run Code Online (Sandbox Code Playgroud)
创建一个返回 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
Run Code Online (Sandbox Code Playgroud)
编辑:我刚刚意识到你上面的代码应该按原样工作。我认为您的错误可能是由于 r.someFunctionInR() 的返回类型造成的——它是否有可能返回 NULL 值的向量?您是否尝试过打印 的值result?如果这不起作用,您可以分享有效的方法someFunctionInR()。
| 归档时间: |
|
| 查看次数: |
3393 次 |
| 最近记录: |