Я хочу вычислить энтропию передачи в записной книжке JupyterLab, вызвав пакет RTransferEntropy R, используя rpy2, но у меня возникают проблемы при этом.
Я использую 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. Однако мне не удалось их запустить и запустить.