替代 R 中的 import() 包?
Alternative to import() package in R?
我在 python 中使用 Rpy2 来调用 R,但由于某些原因我无法加载特定包 'rmgarch'。我已经在 R 中单独安装了它,当我将它导入 RStudio 时它可以工作,但无论出于何种原因,它只是不想在 rpy2 中工作,即使 rpy2 非常乐意导入其他包,例如 'rugarch','Matrix', 'zoo', 等等。它们都安装在同一个库中,这让我更加困惑。
我的问题是,你知道用 R 编码时 calling/importing 包的另一种方法吗?请注意,我可以导入任何其他包。我尝试使用 devtools,因为这是我能想到的唯一类似的东西,但它在那个宇宙中不存在。我正在使用 R 4.0.3。 Python 版本 3.7.6。在 Jupyter 中使用的一个例子是:
import rpy2
import rpy2.robjects as robjects
from rpy2.robjects import pandas2ri
from rpy2.robjects.conversion import localconverter
utils.install_packages('rmgarch') #;utils.install_pa...rugarch,...
robjects.r('''
library('rugarch')
library('quantmod')
library('forecast')
library('rmgarch')
f <- function(u) {
l<-u
}
''')
错误输出为:
RRuntimeError: Error in library("rmgarch") : there is no package called ‘rmgarch’
如果您不需要整个包,您可以使用 packagename::functionname(...)
.
调用单独的函数
RRuntimeError
转发了一个R产生的错误,说没有包X,嵌入的R真的认为没有这个包。
如果观察到 RStudio 中嵌入的 R 和 Python 中嵌入的 R 之间的差异,那么它可以是:
- 你(至少)在你的系统上安装了 2 个 R,它们每个 link 到不同的
- R 设置为在两者之间的不同位置查找已安装的包(例如,环境变量
R_LIBS
可以做到这一点)。
在 RStudio 中:
installed.packages()["rmgarch", "LibPath"]
在Python/rpy2中:
tuple(robjects.r('.libPaths()'))
如果 Python/rpy2 中不存在 R studio 显示的路径,则 Python/rpy2 将无法加载 RStudio 可以加载的 R 包。
我在 python 中使用 Rpy2 来调用 R,但由于某些原因我无法加载特定包 'rmgarch'。我已经在 R 中单独安装了它,当我将它导入 RStudio 时它可以工作,但无论出于何种原因,它只是不想在 rpy2 中工作,即使 rpy2 非常乐意导入其他包,例如 'rugarch','Matrix', 'zoo', 等等。它们都安装在同一个库中,这让我更加困惑。 我的问题是,你知道用 R 编码时 calling/importing 包的另一种方法吗?请注意,我可以导入任何其他包。我尝试使用 devtools,因为这是我能想到的唯一类似的东西,但它在那个宇宙中不存在。我正在使用 R 4.0.3。 Python 版本 3.7.6。在 Jupyter 中使用的一个例子是:
import rpy2
import rpy2.robjects as robjects
from rpy2.robjects import pandas2ri
from rpy2.robjects.conversion import localconverter
utils.install_packages('rmgarch') #;utils.install_pa...rugarch,...
robjects.r('''
library('rugarch')
library('quantmod')
library('forecast')
library('rmgarch')
f <- function(u) {
l<-u
}
''')
错误输出为:
RRuntimeError: Error in library("rmgarch") : there is no package called ‘rmgarch’
如果您不需要整个包,您可以使用 packagename::functionname(...)
.
RRuntimeError
转发了一个R产生的错误,说没有包X,嵌入的R真的认为没有这个包。
如果观察到 RStudio 中嵌入的 R 和 Python 中嵌入的 R 之间的差异,那么它可以是:
- 你(至少)在你的系统上安装了 2 个 R,它们每个 link 到不同的
- R 设置为在两者之间的不同位置查找已安装的包(例如,环境变量
R_LIBS
可以做到这一点)。
在 RStudio 中:
installed.packages()["rmgarch", "LibPath"]
在Python/rpy2中:
tuple(robjects.r('.libPaths()'))
如果 Python/rpy2 中不存在 R studio 显示的路径,则 Python/rpy2 将无法加载 RStudio 可以加载的 R 包。