【问题标题】:Convert R code into Python code using rpy2使用 rpy2 将 R 代码转换为 Python 代码
【发布时间】:2015-08-13 09:07:32
【问题描述】:

我是 R 新手,实际上,我对 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)))
}

【问题讨论】:

    标签: python r rpy2


    【解决方案1】:
    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,而且我的声誉太低,无法投票。
    • 可能是你做了,但以防万一:你检查了rpy2.bitbucket.org“文档”部分中的链接吗?
    猜你喜欢
    • 2018-11-05
    • 2012-04-25
    • 1970-01-01
    • 1970-01-01
    • 2022-01-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多