私はrpy2で作業しています.Rオブジェクトで代入メソッドを使用する必要があります。たとえば、このオブジェクトで始まる:rの割り当て方法をrpy2で使う方法は?
# Python code
from rpy2.robjects import r
myvar = r('c(a=1,b=2,c=3)')
は、私がnames(myvar)
に割り当てるとします。 (注意:rpy2はmyvar.names
経由名にアクセスするための別の方法を提供しているという事実を無視します。これは、名前だけではなく、任意の割り当て方法のために働く。。)Rで、私はどうなる:
# R code
names(myvar) <- c("x", "y", "z")
ただし、これはしませんPythonでの作業:もちろん
# Python code
> names(myvar) = ['x', 'y', 'z']
In [62]: names(myvar) = ['x', 'y', 'z']
File "<ipython-input-62-aa3f7998cdcb>", line 1
names(myvar) = ['x', 'y', 'z']
^
SyntaxError: can't assign to function call
、私はrpy2の文字列evalを介して、任意のコードを実行することができます。
# Python code
r('''names(myvar) <- c("x", "y", "z")''')
が、評価される文字列に値を補間することは鳴りません楽しく安全です。だから、安全にmethod(object) <- value
のrpy2に相当することをする方法はありますか?
これは名前に対しては機能しますが、任意のセッター関数では機能しません。 'names < - '以外のセッターを含む簡単な例を考えることができたらと思います。 –