Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/331.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何将None转换为R NULL_Python_Rpy2 - Fatal编程技术网

Python 如何将None转换为R NULL

Python 如何将None转换为R NULL,python,rpy2,Python,Rpy2,阅读后,我认为以下内容将允许将Python None转换为R NULL: 将rpy2.robjects.conversion导入为cv 将rpy2.robjects导入为robjs 从rpy2.robjects导入默认\u转换器 从rpy2.robjects.packages导入导入 r_base=importr(“base”) def _none2null(无对象): 返回robjs.r(“空”) 无转换器=cv.转换器(“无转换器”) none_converter.py2rpy.regist

阅读后,我认为以下内容将允许将Python None转换为R NULL:

将rpy2.robjects.conversion导入为cv
将rpy2.robjects导入为robjs
从rpy2.robjects导入默认\u转换器
从rpy2.robjects.packages导入导入
r_base=importr(“base”)
def _none2null(无对象):
返回robjs.r(“空”)
无转换器=cv.转换器(“无转换器”)
none_converter.py2rpy.register(none,_none2null)
使用cv.localconverter(默认\u转换器+无\u转换器):
filesl=r\u base.list\u文件(模式=None)
但是,它在跟踪时失败:

NotImplementedError:未为“”类型的对象定义转换“py2rpy”

如何处理这个问题?

Converter.register()方法接受要转换的对象的类型作为第一个参数,但您传递了一个实例
None
NoneType
的一个实例:

NoneType = type(None)
NoneType() is None   # True
您需要为
NoneType
定义转换,因此您只需使用:

none_converter.py2rpy.register(type(None), _none2null)

这回答了你的问题吗?不,很遗憾。在converter函数中使用robjs.NULL会得到相同的结果这是一个好问题,因为rpy2用户可能希望将其
None
s自动转换为
NA
NULL
或其他R结构。Converter是这里的正确模式,与@PacketLossThank you链接的问题中的手动转换不同,这非常有用!