我正在尝试定义一个涉及rpy2步骤的Python函数。这是我的代码:
from rpy2 import robjects
df=robjects.DataFrame.from_csvfile('mydataframe.csv')
dplyr = importr('dplyr')
from rpy2.robjects.lib.dplyr import DataFrame
def boxplot(x):
plot_df = (DataFrame(df).
filter('VAR1 == x' ))
grdevices.png(file='boxplot.png')
pp = ggplot2.ggplot(plot_df ) + \
ggplot2.aes_string(x='VAR1', y='VAR2') + \
ggplot2.geom_boxplot()
pp.plot()
grdevices.dev_off()
但是boxplot(24)
例如在运行时,出现此错误:找不到对象“ x”。
如何将两者混合?根据文档看来,Python语法**可能是一种解决方案,但尚不清楚如何使用它。
谢谢
问题在这里:
plot_df = (DataFrame(df).
filter('VAR1 == x' ))
该字符串VAR1 == x
将作为R表达式求值,但是R对x
Python中定义的变量一无所知。
如果x
是简单的标量,则可以尝试创建一个包含要过滤的值的字符串:
plot_df = (DataFrame(df).
filter('VAR1 == %r' % x))
注意: @Parfait的要点Dataframe
是我最初想念的东西。假定这是一个数据dplyr
框,而不是一个数据pandas
框。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句