将R对象插入R代码字符串

时间:2014-10-04 05:35:02

标签: python r rpy2

我正在使用rpy2来运行一些R命令。不要问为什么。这一刻是必要的。所以这是代码的一部分。

import pandas.rpy.common as com
from rpy2.robjects import r

#Load emotionsCART decision tree. Successful.
r_dataframe = com.convert_to_r_dataframe(data)
print type(r_dataframe)
(<class 'rpy2.robjects.vectors.DataFrame'>)

r('pred = predict(emotionsCART, newdata = %s)') %(r_dataframe) 

这里我要做的是将此r_dataframe传递给计算。我正在使用我之前加载的决策树来预测值。但最后一行给了我一个错误。它说

Traceback (most recent call last):
  File "<pyshell#38>", line 1, in <module>
r('pred = predict(emotionsCART, newdata = %s)') %(r_dataframe)
 File "C:\Python27\lib\site-packages\rpy2\robjects\__init__.py", line 245, in __call__
   p = rinterface.parse(string)
   ValueError: Error while parsing the string.

为什么会发生这种情况?

1 个答案:

答案 0 :(得分:0)

我认为:

r('pred = predict(emotionsCART, newdata = %s)') %(r_dataframe) 

应该是:

r('pred = predict(emotionsCART, newdata = %s)' % (r_dataframe) ) 

%(r_dataframe)r()部分相关联,而应与''(字符串)相关联。

但如果没有可重复的例子,很难检查。