簡體   English   中英

r-將舊的r版本軟件包復制到包含新版本軟件包的新文件夾是否正確?

[英]r - Is it right to copy the old r version packages to the new folder that contains the packages of the new version?

我安裝了最新版本的r 3.5.0,並從舊版本3.4.3復制了所有軟件包,並將它們粘貼到當前版本的文件夾3.5中,我認為這不是復制和粘貼軟件包的好方法,因為RStudio詢問我重新安裝該軟件包。 例如,當我安裝zoo時,它給了我這個錯誤:

Error: package or namespace load failed for ‘zoo’:
package ‘zoo’ was installed by an R version with different internals; it 
needs to be reinstalled for use with this R version

我應該怎么做才能正確復制它們?

為新版本的R重建軟件包比解決它們要安全得多。

重建所有軟件包的最簡單方法是將文件列表以舊版本的R保存在文件中,然后將其加載到新版本的R中並安裝它們:

# In old version of R:
ip <- installed.packages()[,1]
write(ip,"rpackages_in_3.4.3.txt")
q()

# In new version of R:
ip_3.4.3 <- readLines("rpackages_in_3.4.3.txt")
setRepositories(graphics=FALSE, ind=1:6)
install.packages(ip)

還有一個軟件包安裝程序可能對此有用: https : //cran.r-project.org/web/packages/installr/installr.pdf

至少對於Windows也許還有其他的Windows,您所做的事情加上@Ben Bolker的建議,正是手冊所說的大多數人應該做的事情:

對於大多數人來說,最好的做法是將所有已安裝的軟件包復制到新安裝中的庫文件夾中,在新R中運行update.packages(checkBuilt = TRUE,ask = FALSE),然后刪除所有剩余的內容。舊安裝。

來自: https : //cran.r-project.org/bin/windows/base/rw-FAQ.html#What_0027s-the-best-way-to-upgrade_003f

但是,他們也通過說這是“一種口味問題”來限定這一點,因此,如果您發現另一種適合您的方法,我只想指出您嘗試的方法是有效的,甚至是文檔中建議的方法。

更新:我剛剛在自己的系統上更新了R,並且由於我的軟件包使用了固定的位置(即路徑中沒有版本號),所以我什至沒有將它們從一個地方復制到另一個地方,所以我只做了update.packages(checkBuilt = TRUE, ask = FALSE)部分,它工作正常。

暫無
暫無

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

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