我的目標是使用這個包(https://github.com/tiagodc/TreeLS),但它已被 CRAN 棄用(https://cran.r-project.org/web/packages/TreeLS/index.html)。它需要舊版本的 R,但它的依賴項(例如 raster 包)需要 R 3.5 或更高版本。我考慮了兩種方法。
- 使用 R studio 并將全域選項更改為舊版本的 R,但我經常使用許多地理空間包,并且由于這個包具有舊的依賴項,我不想安裝我一直使用的舊版本的包。
- 在 Mini Conda 3 中創建一個專用于這個包的虛擬環境。我選擇這個選項是因為它是自包含的。
這是到目前為止的作業流程。
conda search -c r r
conda create -n newR351 -c conda-forge r-base=3.5.1 -y
conda install -c r rtools -y
成功創建了一個名為 newR351 的 conda 環境,并將 r 工具安裝到 mini conda 3 中的該環境檔案夾中。
安裝 R 3.5.1 的 conda 環境的位置
C:\Users\me\Miniconda3\envs\newR351
當我嘗試安裝 devtools 以便可以從 github 遠程安裝 TreeLS 時,我收到一條退出狀態為零的警告。devtools 包安裝,但它安裝到我的 appdata 檔案夾,而不是我的迷你 conda 環境。
conda install -c r devtools -y
The downloaded source packages are in
'C:\Users\me\AppData\Local\Temp\RtmpYByvp8\downloaded_packages'
如何在我的 conda 環境 newR351 上訪問 devtools?我需要建立一個 cran 骨架嗎?當我在這個環境中激活 R 并嘗試加載 devtools 庫時,我得到了這個。
(newR351) C:\Users\me>R
R version 3.5.1 (2018-07-02) -- "Feather Spray"
Copyright (C) 2018 The R Foundation for Statistical Computing
Platform: x86_64-w64-mingw32/x64 (64-bit)
...
>library(devtools)
Error in library(devtools) : there is no package called 'devtools'
為舊 R 包創建特定環境的最佳實踐是什么?其他人使用 TreeLS 嗎?
uj5u.com熱心網友回復:
首先,devtools沒有出現,因為 Conda 存盤庫中的 R 包通常以“ r-”為前綴,因此安裝conda install r-devtools應該可以解決問題。但是,我不認為 Conda 是這里最好的策略。
在 R 版本 3.6 以下,R 包的 Conda 包覆寫率相當差。此外,將需要編譯到 Conda R 環境中的非 Conda 包安裝是一件痛苦的事情,并且根據我的經驗,通常不能開箱即用。另外,不僅TreeLS需要編譯,而且它的依賴項不是需要編譯的 Conda 包。我會避免這種情況。
選項1是可行的。R 允許多個安裝,并且通過操作環境變數(我認為RSTUDIO_WHICH_R,R_LIBS是相關的),可以在它們之間切換。
但是,如果這是我的情況,我可能會啟動一個 docker 容器,rocker/rstudio:3.5并將其用于這個專案。由于底層映像是 Linux,因此編譯需要一段時間,但您可以在此時對其進行版本化,然后始終可以啟動它。這避免了必須亂搞任何系統設定,并且應該主要是直接安裝。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/420128.html
標籤:
