[英]How to combine Python function with rpy2?
我正在嘗試定義一個涉及 rpy2 步驟的 Python function 。 這是我的代碼:
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)
時,我收到此錯誤:未找到 object 'x'。
我怎樣才能混合兩者? 根據文檔似乎 Python 語法 ** 可能是一個解決方案,但不清楚如何使用它。
謝謝
問題在這里:
plot_df = (DataFrame(df).
filter('VAR1 == x' ))
字符串VAR1 == x
將被評估為 R 表達式,但 R 對 Python 中定義的變量x
一無所知。
如果x
是一個簡單的標量,您可以嘗試創建一個包含要過濾的值的字符串:
plot_df = (DataFrame(df).
filter('VAR1 == %r' % x))
注意: @Parfait 關於Dataframe
的觀點是我最初錯過的。 假定這是dplyr
Dataframe,而不是pandas
ZBA834BA059A9A379459C112E175EB8。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.