簡體   English   中英

如何將 Python function 與 rpy2 結合起來?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM