【问题标题】:handing Null return in rpy2在 rpy2 中处理 Null 返回
【发布时间】:2012-10-08 07:08:03
【问题描述】:

我正在使用 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

someFunctioninR() 返回的“结果”可以是 NULL 或其他格式。 result==r('as.null()') 不起作用。当结果为 NULL 时,我还有其他方法可以获得 True 吗?

【问题讨论】:

    标签: python r rpy2


    【解决方案1】:

    试试rpy2.rinterface.NULLrobj.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
    

    edit:我刚刚意识到您上面的代码应该可以正常工作。我认为您的错误可能是由于 r.someFunctionInR() 的返回类型 - 它是否有可能返回 NULL 值的向量?您是否尝试过打印result 的值?如果这不起作用,您可以分享someFunctionInR() 是什么。

    【讨论】:

      猜你喜欢
      • 2012-02-26
      • 1970-01-01
      • 1970-01-01
      • 2015-02-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多