【问题标题】:how to access R variables in a different environment in a python chunk如何在 python 块中访问不同环境中的 R 变量
【发布时间】:2020-09-28 23:28:52
【问题描述】:

我想将不在 R 全局环境中的变量传递给 python 块(使用 reticulate)。这是一个例子:

library(reticulate)

newEnv <- new.env()
newEnv$x <- 9

z <- 3
print(r.newEnv$x)

这会产生错误。请注意,我也尝试过print(r.newEnv[['x']])。此外,print(r.z) 给出了3.0,正如预期的那样。最后,我玩弄了诸如eval() 之类的东西,并构造了要传递给 Python 的字符串,到目前为止还没有骰子。

【问题讨论】:

    标签: python r environment-variables reticulate


    【解决方案1】:

    如果您先将第二个 Env 复制到列表中,则可以:

    ```{r}
    library(reticulate)
    
    newEnv <- new.env()
    newEnv$x <- 9
    newEnv$df <- data.frame(1:10,1:10)
    
    newEnvCopyDummy <- as.list(newEnv)
    
    z <- 3
    ```
    

    然后是你的

    ```{python}
    print(r.newEnvCopyDummy)
    ```
    

    返回:

    {'x': 9.0, 'df':    X1.10  X1.10.1
    0      1        1
    1      2        2
    2      3        3
    3      4        4
    4      5        5
    5      6        6
    6      7        7
    7      8        8
    8      9        9
    9     10       10}
    

    但不可否认,这并不是你想要的。

    【讨论】:

    • 感谢您的全面回答!如果我将特定于环境的对象复制到 R 全局环境中,这一切都很好,所以我总是可以继续这样做(但是,当然,这首先违背了拥有其他环境的目的)。跨度>
    猜你喜欢
    • 1970-01-01
    • 2012-06-15
    • 2015-05-31
    • 1970-01-01
    • 2021-08-13
    • 1970-01-01
    • 2011-05-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多