使用rpy2将R代码转换为Python代码

3
我是一名新手,对R语言的语法一无所知。因此,我找到了rpy2包(版本2.6.1),并尝试利用其中的R回归拟合函数进行数据分析。但是,我无法使用rpy2提取回归系数。如果有人能帮忙告诉我如何提取回归方程系数,例如R^2、P等,真的非常感谢。
我找到了一段R代码可以实现这个功能,但目前我无法将其转换为Python代码。下面是我找到的R代码:
ggplotRegression <- function (fit) {

require(ggplot2)

ggplot(fit$model, aes_string(x = names(fit$model)[2], y = names(fit$model)[1])) + 
  geom_point() +
  stat_smooth(method = "lm", col = "red") +
  labs(title = paste("Adj R2 = ",signif(summary(fit)$adj.r.squared, 5),
                     "Intercept =",signif(fit$coef[[1]],5 ),
                     " Slope =",signif(fit$coef[[2]], 5),
                     " P =",signif(summary(fit)$coef[2,4], 5)))
}
1个回答

3
from rpy2.robjects import r

ggplotRegression = r("""
    function (fit) {

        require(ggplot2)

        ggplot(fit$model,
               aes_string(x = names(fit$model)[2],
                          y = names(fit$model)[1])) + 
            geom_point() +
            stat_smooth(method = "lm", col = "red") +
            labs(title = paste("Adj R2 = ",
                               signif(summary(fit)$adj.r.squared, 5),
                               "Intercept =",
                               signif(fit$coef[[1]],5 ),
                               " Slope =",signif(fit$coef[[2]], 5),
                               " P =",signif(summary(fit)$coef[2,4],         
                               5)))
    }""")

使用这个代码,你可以在Python中调用ggplotRegression函数。


嗨,Lgautier,非常感谢您的回答。以这种方式,我仍然需要使用R语法编写代码。您是否有任何相关材料,让我使用rpy2包编写相应的Python代码?如果没有,您能否告诉我如何在Python中调用此函数?非常抱歉,我无法投票支持您的答案,因为这是我第一次使用stachoverflow,我的声望太低了,无法投票。 - Daquan Zhou
你可能已经做了,但以防万一:你有检查 http://rpy2.bitbucket.org/ 中“文档”部分的链接吗? - lgautier

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接