这个问题与python variable to R有关,也可能与python objects to rpy2有关,但两者完全没有重叠,第一个实际上没有答案。
我的问题其实非常简单。我有一个字符串,说:
In [21]: strg
Out[21]: 'I want to go home'
我希望像这样通过robjects.r(''' ''')
传递给R,例如:
robjects.r('''
test <- gsub("to", "",strg)
''')
但当然,当我运行时,我获得:Error in gsub("me", "", strg) : object 'strg' not found
。
我没有使用rpy2
(显而易见),但我猜想与R和Python看到对象的环境有关。
我尝试了一些方法,比如首先将字符串strg
转换为robject
,然后将其提供给robjects.r(''' ''')
,但我收到相同的错误消息。总的来说,我不知道如何在strg
环境中看到R
。
非常感谢任何帮助!
提前感谢您的时间!
答案 0 :(得分:1)
只需将strg
值添加到命令字符串:
robjects.r('''
test <- gsub("to", "",''' + strg + ''')
''')
或使用.format
:
robjects.r('''
test <- gsub("to", "",%s)
'''.format(strg))
请注意,您需要留意反斜杠,请参阅问题here
答案 1 :(得分:1)
我建议你创建一个函数,因为rpy2公开的R函数可以被调用,就像它是一个Python函数一样。
my_func = robjects.r('''
function(strg) {
test <- gsub("to", "",strg)
test
}
''')
my_func(strg)