簡體   English   中英

R:將多個庫位置與最新的包組合在一起

[英]R: combining mutiple library locations with most up-to-date packages

問題:如何將所有最新的R軟件包移動到一個簡單的位置,R(和其他所有內容)將從現在開始使用我的軟件包?

我一直在玩Ubuntu 10.04上的R,使用各種RGedit,RCmdr,R shell和RStudio。 同時,我已經安裝了軟件包,更新了軟件包,並通過apt,synaptic,install.packages()等重新更新了軟件包...這顯然意味着這些軟件包隨處可見,並且(偶爾會拋出sudo)不同權限。

目前我有不同版本的不同(和重復)包:

/home/me/R/i486-pc-linux-gnu-library/2.10
/home/me/R/i486-pc-linux-gnu-library/2.14
/home/me/R/i486-pc-linux-gnu-library/
/usr/local/lib/R/site-library               
/usr/lib/R/site-library                     
/usr/lib/R/library 

首先 - 我是單個用戶,在一台機器上 - 我不想要多個庫位置,我只是希望它能夠工作。

第二 - 我的連接速度非常慢,並且不能一直重復下載包。

那么 - 有一種簡單的方法可以將所有這些庫位置合並到一個簡單的位置嗎? 我可以將文件夾復制過來嗎?

我如何在具體情況下設置它並且始終是R相關查找和更新包的地方?

這令人抓狂。

謝謝你的幫助。

是的,它幾乎可以復制文件夾。 但是沒有NAMESPACE文件的2.14之前的軟件包可能無法在R 2.14中運行,其中所有軟件包都必須具有命名空間...

如果您有多個版本,您需要手動確保只復制每個軟件包的最新版本...

如果鍵入.libPaths() ,它將告訴您R查找包的位置。 列表中的第一個是通常安裝新軟件包的位置。 我懷疑.libPaths()可能會從RStudio和Rcmd等返回不同的東西。

拼湊出各種信息之后:R包目錄組織的完整白痴指南:

NB1 - 這是我對Ubuntu的體驗 - 你的里程可能會有所不同NB2 - 我是一台機器上的單個用戶,我喜歡簡單的事情。

Ubuntu通過apt或synaptic安裝任何東西:

/usr/lib/R/site-library                     
/usr/lib/R/library

目錄。 默認的vanilla R安裝將在此處嘗試安裝包:

/usr/local/lib/R/site-library

由於這些是系統目錄,因此用戶沒有寫入權限,這取決於您與R交互的方式,您可能會被友好提示 - “嘿好友 - 我們不能寫在那里,您希望我們將您的包裹放入你的主目錄?“ 這似乎無辜和合理......假設你永遠不會改變你的GUI或你的工作環境。 如果這樣做,新的GUI /環境可能不會查找放置包的目錄,因此無法找到它們。 (大多數接口都有一種方法可以指出你的個人軟件包庫,但是誰想要在配置文件中搞砸?)

在Ubuntu上使用默認安裝設置,對我來說似乎是最好的做法(並且可以隨意糾正我)是從基本的R shell進行任何包管理,如sudo: > sudo R並從那里你的install.packages()伏都教。 這似乎將包放在usr/local/lib/R/site-library目錄中。

同時, update.packages()將更新/usr/lib/R/site-libraryusr/lib/R/library目錄中的文件,以及usr/local/lib/R/site-library

(至於usr/lib/R/ division,它看起來像/library/有核心包,而/site-library/包含任何添加的東西,假設它們是由apt安裝的......)

以前安裝和錯誤位置的任何軟件包都可以通過移動目錄(感謝@Tommy)移動到/usr/local/lib/R/site-library目錄(假設你是sudo ing),但是作為usr/lib/R/由apt控制 - 最好不要在那里添加或減去任何東西......

呼。 無論如何 - 簡單,用簡單的語言。 謝謝大家的幫助。

暫無
暫無

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

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