我正在尝试在我的 Linux Mint 计算机上的 rpy2(版本 3.5.16)中使用 tidyverse。我认为有两种可能的方法可以完成此任务:(1) 使用已在 R 控制台和 RStudio 中运行的 tidyverse 安装,或 (2) 在 rpy2 中导入 tidyverse。我的偏好是使用第一个选项,这样我就可以为 R 和 Rpy2 中的任务应用相同的包集。
选项 1:导入预先存在的 tidyverse 包
我使用
sudo apt install r-base r-cran-tidyverse
在我的电脑中安装了 tidyverse。我相信此安装工作正常,因为以下代码不会在我的 R 控制台和 RStudio 中引发任何错误:
library(tidyverse)
但是,在 Jupyter 笔记本中运行以下 Python 代码会失败:
import rpy2
from rpy2.robjects.packages import importr
utils = importr('utils')
survey = importr('survey')
srvyr = importr('srvyr')
错误信息:
PackageNotInstalledError: The R package "tidyverse" is not installed.
有没有办法可以将 Rpy2 指向我现有的 tidyverse 安装?
选项 2:使用 rpy2 安装 tidyverse 的新副本
这个选项对我来说也失败了。我尝试运行以下 Python 脚本:
import rpy2
from rpy2.robjects.packages import importr
# import R's "base" package
base = importr('base')
# import R's "utils" package
utils = importr('utils')
utils.install_packages('tidyverse')
print("Done!")
但是,安装过程几分钟后,出现了以下错误消息:
ERROR: dependencies ‘conflicted’, ‘ragg’, ‘reprex’ are not available for package ‘tidyverse’
* removing ‘/home/myusername/miniforge3/envs/myenv/lib/R/library/tidyverse’
我以为我可以通过单独安装软件包来解决这个问题,但是当我运行
utils.install_packages('conflicted')
时,我收到以下消息:
ERROR: dependency ‘memoise’ is not available for package ‘conflicted’
我也可以尝试手动安装
memoise
,但我认为该包反过来可能依赖于另一个丢失的包。有没有更简单的方法来自动安装这些缺失的软件包?
在尝试为 Linux 编译 tidyverse 时,我不断遇到错误消息。我还尝试使用 r2u 来安装 tidyverse,但我无法运行其安装脚本(可能是由于与我预先存在的 R 安装发生冲突)。因此,我尝试单独安装每个 tidyverse 软件包。这种方法似乎有效,因为以下每一行都成功运行:
utils.install_packages('dplyr')
utils.install_packages('tidyr')
utils.install_packages('readr')
utils.install_packages('ggplot2')
utils.install_packages('tibble')
utils.install_packages('stringr')
utils.install_packages('forcats')
utils.install_packages('lubridate')
此外,我还可以毫无问题地运行以下单元:
dplyr = importr('dplyr')
tidyr = importr('tidyr')
readr = importr('readr')
ggplot2 = importr('ggplot2')
tibble = importr('tibble')
stringr = importr('stringr')
forcats = importr('forcats')
lubridate = importr('lubridate')