Rpy中两个IntVectors的差异

时间:2013-05-07 17:42:52

标签: rpy2 subtraction

ab都是rpy2 IntVector s:

<IntVector - Python:0x10676dfc8 / R:0x7fc714d64948>
[      81, NA_integer_, NA_integer_, ...,      120,       46, NA_integer_]

如何计算b - a差异?我希望结果为IntVector

2 个答案:

答案 0 :(得分:0)

subtract  = r('''function(x, y) x - y''')
subtract(b, a)

这个解决方案的优点是它不仅可以处理IntVectors,还可以处理任何R类型。 不好的是,将命令作为字符串传递给R解释器很难看。

答案 1 :(得分:0)

尝试使用R operator attribute .ro

In [1]: from rpy2 import robjects

In [2]: x = robjects.IntVector(range(10))

In [3]: y = robjects.IntVector(range(10))

In [4]: x.ro-y
Out[4]: 
<IntVector - Python:0x1067d3830 / R:0x102d6ef20>
[       0,        0,        0, ...,        0,        0,        0]

In [5]: x.ro+y
Out[5]: 
<IntVector - Python:0x1067d3cf8 / R:0x102d6eec8>
[       0,        2,        4, ...,       14,       16,       18]