簡體   English   中英

默認R個人庫位置為空

[英]default R personal library location is null

我將我的Ubuntu 16.04機器更新為R 3.4.1。 當安裝第一個非必需的包(例如,lubridate)時,我收到了以下消息:

你想創建一個個人庫'null'來安裝包嗎?

這發生在RStudio和命令行R.我通過apt-get卸載了r-base-core並重新安裝了r-baser-base-dev ,但仍然存在問題。

我注意到/etc/R/目錄包含四個在安裝過程中暫時存在的短暫文件,但是在apt-get install r-base r-base-dev完成時已經消失了。 我重新安裝,以便快速抓取並粘貼這些文件到桌面。 重新安裝后,我將它們復制到/etc/R/中:

~/Desktop/temp$ sudo cp repositories.dpkg-new /etc/R/repositories
~/Desktop/temp$ sudo cp Rprofile.site.dpkg-new /etc/R/Rprofile.site
~/Desktop/temp$ sudo cp ldpaths.dpkg-new /etc/R/ldpaths
~/Desktop/temp$ sudo cp Makeconf.dpkg-new /etc/R/Makeconf

第二步是取消注釋下面的第二步,如/etc/R/Renviron 顯然這是@ dirk-eddelbuettel最近對r-base包裝的改變。

# edd Jun 2017  Comment-out R_LIBS_USER
#R_LIBS_USER=${R_LIBS_USER-'~/R/x86_64-pc-linux-gnu-library/3.4'}
##R_LIBS_USER=${R_LIBS_USER-'~/Library/R/3.4/library'}

我有一個由兩部分組成的問題:

  1. 是上面推薦的過程,還是我應該采取不同的做法? (例如,沿着設置R_LIBS並避免“您想要使用個人庫嗎?” 。)
  2. 這台機器的未來R升級可能需要這兩個步驟嗎?

你很親密 問題在於“注釋掉”這些行,而不檢查兼容性。 如果您嘗試在REPL中手動安裝庫,則會出現同樣的問題,例如:

install.packages("survival")

區別在於您得到“NA”錯誤而不是“null”。

如果您想要最小的麻煩,未來R升級的解決方案:

  • 將/ etc / R / Renviron恢復到軟件包默認值,以便下次升級時不會要求輸入(或只是覆蓋)

  • 在主目錄中添加Renviron,例如$HOME/.Renviron ,其中包含以下內容:

R_LIBS_USER="${HOME}/R/${R_PLATFORM}-library/3.4.1/"

就個人而言,每次R升級我都會用新版本重新安裝所有庫。 因此,我將使用3.4.2或任何新版本修改3.4.1 ,然后重新安裝庫。

如果您不想重新安裝庫,可以嘗試完全刪除版本子目錄,例如:

R_LIBS_USER="${HOME}/R/${R_PLATFORM}-library/

這樣你的舊圖書館就會立刻被R.看到

注意:遺憾的是,我無法找到將R版本放入Renviron的方法,但這可以使用.Rprofile來實現(因為它可以包含R代碼)。

在您的計算機上,您當前的庫以R版本命名。

例如,我目前的lib是:

.libPaths()
[1] "/home/colin/R/x86_64-pc-linux-gnu-library/3.3"

因為我目前的R版本是3.3。

所以,是的,每次你更新R,你都會遇到這個lib問題。 請注意,您可以使用.libPaths(new = "path/to/your/lib")設置舊庫的路徑,或者將舊庫復制並粘貼到新庫中。

科林

我發現對我來說最合適的解決方案是編輯/etc/R/Renviron.site

# nano /etc/R/Renviron

並取消注釋設置R_LIBS_USER環境變量的行。

Etvoilà!

我可以再次在R中使用library()require()install.packages()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM