jupyter 中的 rpy2 正在呼应整个函数

乔治治疗师

在尝试将 python 与 RI 连接时,偶然发现了一个最小的例子:

from rpy2.robjects import FloatVector
from rpy2.robjects.packages import importr
stats = importr('stats')
base = importr('base')

ctl = FloatVector([4.17,5.58,5.18,6.11,4.50,4.61,5.17,4.53,5.33,5.14])
trt = FloatVector([4.81,4.17,4.41,3.59,5.87,3.83,6.03,4.89,4.32,4.69])
group = base.gl(2, 10, 20, labels = ["Ctl","Trt"])
weight = ctl + trt

robjects.globalenv["weight"] = weight
robjects.globalenv["group"] = group
lm_D9 = stats.lm("weight ~ group")
print(stats.anova(lm_D9))

# omitting the intercept
lm_D90 = stats.lm("weight ~ group - 1")
print(base.summary(lm_D90))

哪个工作正常(没有错误)。但我的输出看起来像:

Analysis of Variance Table

Response: weight
          Df Sum Sq Mean Sq F value Pr(>F)
group      1 0.6882 0.68820  1.4191  0.249
Residuals 18 8.7293 0.48496               


Call:
(function (formula, data, subset, weights, na.action, method = "qr", 
    model = TRUE, x = FALSE, y = FALSE, qr = TRUE, singular.ok = TRUE, 
    contrasts = NULL, offset, ...) 
{
    ret.x <- x
    ret.y <- y
    cl <- match.call()
    mf <- match.call(expand.dots = FALSE)
    m <- match(c("formula", "data", "subset", "weights", "na.action", 
        "offset"), names(mf), 0L)
    mf <- mf[c(1L, m)]
    mf$drop.unused.levels <- TRUE
    mf[[1L]] <- quote(stats::model.frame)
    mf <- eval(mf, parent.frame())
    if (method == "model.frame") 
        return(mf)
    else if (method != "qr") 
        warning(gettextf("method = '%s' is not supported. Using 'qr'", 
            method), domain = NA)
    mt <- attr(mf, "terms")
    y <- model.response(mf, "numeric")
    .....

这意味着整个功能都回响给了我。我可以在某处设置不同的日志级别吗?

高蒂尔

发生这种情况是因为调用表达式 ( stats.lm("weight ~ group - 1")) 在传递给 R 之前首先在 Python 中进行评估,并且调度函数summary正在报告调用 R 代码。

换句话说,stats.lm首先在 Python 中求值,这将返回lmR 中函数的代码,并且使用您的参数调用该代码"weight ~ group -1")。把它想象成 R 看到你正在使用一个匿名函数,调用形式为function(myformula) { <do things> ) }("weight ~ group - 1“)`。

避免这种情况的方法可能是评估 R 表达式,其中 R 正在解析与lm调用期间函数的符号名称关联的值最简单的是:

robjects.globalenv['myformula'] = "weight ~ group - 1"
lm_D90 = robjects.reval("lm(myformula)")

请注意,调用所需的符号捆绑在命名空间/环境中(可能比将所有内容都放入 中更整洁globalenv)”

myenv = rpy2.robjects.Environment()
myenv['myformula'] = "weight ~ group - 1"
lm_D90 = robjects.reval("lm(myformula)", myenv)

否则,人们可能还会发现它是一种更优雅的解决方案,即首先以编程方式构建一个未计算的 R 表达式,lm()然后对其进行计算。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在带有 rpy2 的 jupyter notebook 中找不到 ggplot 函数

来自分类Dev

在rpy2中绘制R函数曲线

来自分类Dev

在Jupyter Notebook Rpy2中的R单元中使用熊猫数据框时出错

来自分类Dev

如何在 Jupyter (IPython, rpy2) 中获取交互式 R 输出,例如用于进度条?

来自分类Dev

如何通过Rpy2(v3)在Python中使用R中的`hclust`函数?

来自分类Dev

Ubuntu中的rpy2安装错误

来自分类Dev

在rpy2中分配数据框列

来自分类Dev

将列添加到rpy2中的DataFrame

来自分类Dev

在Ubuntu中安装Rpy2时出错

来自分类Dev

将列添加到rpy2中的DataFrame

来自分类Dev

RPy2导入R源函数会产生错误

来自分类Dev

如何将Python函数与rpy2结合?

来自分类Dev

使用rpy2运行R函数时出错

来自分类Dev

具有多个输入参数的 Python RPy2 函数

来自分类Dev

使用 rpy2 从 Python 调用 R 函数

来自分类Dev

在Python和Rpy2中使用R:如何ggplot2?

来自分类Dev

rpy2:加载在conda环境中安装的R版本,而不是系统中的版本

来自分类Dev

如何将列表传递给rpy2中的R并返回结果

来自分类Dev

如何在rpy2中使用R的赋值方法?

来自分类Dev

使用rpy2从pandas DataFrame的分位数回归模型中的不合格数组

来自分类Dev

使用easy_install在Python中安装rpy2模块时出错

来自分类Dev

有没有办法在python / rpy2中访问R数据帧列名?

来自分类Dev

如何在Windows上的python中安装软件包,例如rpy2

来自分类Dev

如何在Rpy2中提取'RS4'元素

来自分类Dev

python SyntaxError中的rpy2:as.ape.AAbin的语法无效

来自分类Dev

如何在rpy2 rlf.tapply函数中使用na_rm

来自分类Dev

如何在Python代码中使用rpy2将R函数作为参数传递

来自分类Dev

rpy2:如何将向量从 Python 回调函数返回到 R?

来自分类Dev

安装rpy2时遇到错误:试图猜测R的HOME,但PATH中没有R命令

Related 相关文章

  1. 1

    在带有 rpy2 的 jupyter notebook 中找不到 ggplot 函数

  2. 2

    在rpy2中绘制R函数曲线

  3. 3

    在Jupyter Notebook Rpy2中的R单元中使用熊猫数据框时出错

  4. 4

    如何在 Jupyter (IPython, rpy2) 中获取交互式 R 输出,例如用于进度条?

  5. 5

    如何通过Rpy2(v3)在Python中使用R中的`hclust`函数?

  6. 6

    Ubuntu中的rpy2安装错误

  7. 7

    在rpy2中分配数据框列

  8. 8

    将列添加到rpy2中的DataFrame

  9. 9

    在Ubuntu中安装Rpy2时出错

  10. 10

    将列添加到rpy2中的DataFrame

  11. 11

    RPy2导入R源函数会产生错误

  12. 12

    如何将Python函数与rpy2结合?

  13. 13

    使用rpy2运行R函数时出错

  14. 14

    具有多个输入参数的 Python RPy2 函数

  15. 15

    使用 rpy2 从 Python 调用 R 函数

  16. 16

    在Python和Rpy2中使用R:如何ggplot2?

  17. 17

    rpy2:加载在conda环境中安装的R版本,而不是系统中的版本

  18. 18

    如何将列表传递给rpy2中的R并返回结果

  19. 19

    如何在rpy2中使用R的赋值方法?

  20. 20

    使用rpy2从pandas DataFrame的分位数回归模型中的不合格数组

  21. 21

    使用easy_install在Python中安装rpy2模块时出错

  22. 22

    有没有办法在python / rpy2中访问R数据帧列名?

  23. 23

    如何在Windows上的python中安装软件包,例如rpy2

  24. 24

    如何在Rpy2中提取'RS4'元素

  25. 25

    python SyntaxError中的rpy2:as.ape.AAbin的语法无效

  26. 26

    如何在rpy2 rlf.tapply函数中使用na_rm

  27. 27

    如何在Python代码中使用rpy2将R函数作为参数传递

  28. 28

    rpy2:如何将向量从 Python 回调函数返回到 R?

  29. 29

    安装rpy2时遇到错误:试图猜测R的HOME,但PATH中没有R命令

热门标签

归档