亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

無痛的方式來安裝新版本的R?

無痛的方式來安裝新版本的R?

冉冉說 2019-08-23 15:34:28
無痛的方式來安裝新版本的R?有沒有人有一個很好的技巧來進行升級,從安裝軟件到復制所有設置/包?這個建議包含在評論中,是我最近一直在使用的。首先安裝新版本,然后在舊版本中運行:#--run in the old version of Rsetwd("C:/Temp/")packages <- installed.packages()[,"Package"]save(packages, file="Rpackages")在新版本中遵循以下內容:#--run in the new versionsetwd("C:/Temp/")load("Rpackages")for (p in setdiff(packages, installed.packages()[,"Package"]))install.packages(p)
查看完整描述

3 回答

?
慕沐林林

TA貢獻2016條經驗 獲得超9個贊

為了完整起見,有一些方法可以防止您遇到此問題。正如Dirk所說,將包保存在計算機上的另一個目錄中。

install.packages("thepackage",lib="/path/to/directory/with/libraries")

您可以更改默認.Library使用的函數值.libPaths

.libPaths("/path/to/directory/with/libraries")

這會將此路徑作為.Library變量中的第一個值,并使其成為默認值。

如果要進一步自動化,可以在Rprofile.site文件中指定它,您可以在R build的/ etc /目錄中找到它。然后每次加載時它都會自動加載,你不必再擔心了。您只需從指定目錄安裝和加載包即可。

最后,我的Rprofile.site中包含一些小代碼,允許我在安裝新R版本時重新安裝所有軟件包。您只需更新到新R版本之前列出它們。我使用包含所有包的更新列表的.RData文件。

library(utils)## Check necessary packagesload("G:\Setinfo\R\packagelist.RData") # includes a vector "pkgs"installed <- pkgs %in% installed.packages()[, 'Package']if (length(pkgs[!installed]) >=1){
  install.packages(pkgs[!installed])}

我通過.Last()在我的Rprofile.site中指定來創建packagelist.RData 。如果我安裝了一些,則更新包列表:

.Last <- function(){
  pkgs <- installed.packages()[,1]
  if (length(pkgs) > length(installed)){
    save(pkgs,file="G:\Setinfo\R\packagelist.RData")
  }}

當我安裝新的R版本時,我只需將必要的元素添加到Rprofile.site文件中,然后重新安裝所有軟件包。無論如何我必須調整Rprofile.site(使用和比,為Tinn-R添加額外的代碼,這些東西),所以這不是真正的額外工作。它只需要額外的時間來重新安裝所有包。

最后一位相當于原始問題中給出的解決方案。我不需要擔心首先獲得“已安裝”列表。

同樣,如果您的軟件包未從CRAN安裝,則無法完美運行。但是這個代碼很容易擴展,包括那些代碼。


查看完整回答
反對 回復 2019-08-23
?
慕田峪7331174

TA貢獻1828條經驗 獲得超13個贊

如果你有先見之明,接受的答案可能會有效,但我已經擺脫了舊版本,因此無法遵循這些指示。下面描述的步驟適用于從2.1和3.1升級的OSX。

更新:要獲取最新版本的目錄(而不是鍵入3.1或3.2),您可以使用以下命令。第二個直接轉換為R變量,跳過.和,...DS_Store使用:

OLD=$(ls -d /Library/Frameworks/R.framework/Versions/*.* |tail -n 2 | head -n 1)Resources/library/echo "packages = c(\"`ls $OLD | tail +4| paste -s -d ',' - | sed -E 's|,|\",\"|'g`\")" | tr -d "/"

(添加|pbcopy到最后將其直接復制到Mac剪貼板)

然后在R中,您可以粘貼生成的變量。一旦在新版本的R中定義了它,您就可以按照上面的說明遍歷已安裝的軟件包......

for (p in setdiff(packages, installed.packages()[,"Package"]))
   install.packages(p, dependencies=TRUE, quiet=TRUE, ask=FALSE)


查看完整回答
反對 回復 2019-08-23
  • 3 回答
  • 0 關注
  • 768 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號