gpt4 book ai didi

python - 我在 Python 中实现 R 的 Transfer Entropy 包时遇到问题

转载 作者:行者123 更新时间:2023-12-01 07:41:25 40 4
gpt4 key购买 nike

我希望通过使用 rpy2 调用 R 的 RTransferEntropy 包来计算 JupyterLab 笔记本中的传输熵,但这样做时遇到问题。

我正在使用 Anaconda 和 Python 3.7,并安装了 RStudio 作为我的环境之一。在 RStudio 中,我成功实现了 RTransferEntropy 包中的示例:

 install.packages('RTransferEntropy')
library(RTransferEntropy)
set.seed(12345)
n <- 2500
x <- rep(0, n + 1)
y <- rep(0, n + 1)

for (i in 2:(n + 1)) {
x[i] <- 0.2 * x[i - 1] + rnorm(1, 0, 2)
y[i] <- x[i - 1] + rnorm(1, 0, 2)}

x <- x[-1]
y <- y[-1]

library(future)
plan(multiprocess)
set.seed(12345)
shannon_te <- transfer_entropy(x, y)

shannon_te

一切正常,我能够获得文档中显示的正确结果。

现在我想使用rpy2。以下是我在 Jupyter 笔记本中输入的内容:

 from rpy2.robjects.packages import importr
base = importr('base')
utils = importr('utils')
te=rpackages.importr('RTransferEntropy')

我尝试只导入前两个 R 包,并且没有遇到任何困难。但是,当尝试导入 RTransferEntropy 时,我收到一条很长的错误消息,最后几行如下:

 RRuntimeError: Error in loadNamespace(name) : 
there is no package called ‘RTransferEntropy’
Calls: <Anonymous> ... tryCatch -> tryCatchList -> tryCatchOne ->
<Anonymous>

我不确定是什么原因导致了该错误。是否可能是因为 RTransferEntropy 不在正确的目录中?

此外,我确实意识到存在可在 Python 中直接使用的传递熵计算方法,例如NPEET 和 JIDT。但是,我未能成功地启动并运行它们。

最佳答案

谢谢。根据您的见解,我发现这很有效:

R 内部:.libPaths()

Jupyter 笔记本中使用生成的路径名(只有一个)来正确定位包:

from rpy2.robjects.packages import importr

importr('RTransferEntropy', lib_loc="pathname")

关于python - 我在 Python 中实现 R 的 Transfer Entropy 包时遇到问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56688378/

40 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com