我通过以下操作在python中映射一个类RS4:
from rpy2.robjects.packages import importr
import rpy2.robjects as ro
class MapTOS4(ro.methods.RS4):
"""
writing a child class to map to S4 reference class in python
"""
def LoadFile(self, filename):
"""access the LoadFile method of SlicedData class"""
return ro.baseenv['$'](self, 'LoadFile')(filename)
def fileSliceSize(self):
"""access the class attribute or field"""
return ro.baseenv['$'](self, 'fileSliceSize')
mql = importr('MatrixEQTL')
data = MapTOS4(mql.SlicedData())
print(data.fileSliceSize())
在执行上述代码时,我得到了以下[1] 1000
,这是预期的,因为在特定的包中,类字段/属性fileSliceSize
的默认值设置为1000。但是,我正在尝试将该类属性的值重置或更改为2000
在R中,您可以通过以下简单的代码轻松完成这一任务:
data$fileSliceSize = 2000
基于我在Python中的实现,如何实现这一点
事先非常感谢你
在R中,
data$fileSliceSize = 2000
操作只是一种语法糖,用于调用带有三个参数的$<-
函数(对象,键,值):与通过
data$fileSliceSize
访问相同的方式是一种语法糖:BACTICK用于转义函数名中的特殊字符-您可以使用BACTICK调用任何R函数:
更多信息请参见R文档的Extract chapter
因此,在rpy2中,您可以简单地执行以下操作:
但是,我建议尝试一种更“pythonic”的方法(为了简洁起见省略docstrings):
相关问题 更多 >
编程相关推荐