r 如何更新,不需要重裝的手段進行更新?

R語言 更新版本 非重裝的方法
你可以嘗試安裝在自己指定的目錄,然後從指定的目錄載入。
或者用 packrat 對安裝包做虛擬化,也是一種思路
如果是Windows系統,可以使用 installr 包 來更新,相關語句如下:
install.packages("installr")
require(installr)
updateR()
無法成功安裝,如下:
&> install.packages("installr")
有二進位版本的,但源代碼版本是後來的:
binary source needs_compilation
installr 0.17.8 0.18.0 FALSE
安裝源碼包『installr』
試開URL』https://mirrors.tuna.tsinghua.edu.cn/CRAN/src/contrib/installr_0.18.0.tar.gz"
Content type "application/octet-stream" length 126497 bytes (123 KB)
downloaded 123 KB
"D:Program" 不是內部或外部命令,也不是可運行的程序
或批處理文件。
下載的程序包在
『C:UsersAdministratorAppDataLocalTempRtmpGslxAFdownloaded_packages』里
Warning messages:
1: 運行命令""D:/Program Files/R/R-3.3.1/bin/x64/R" CMD INSTALL -l "D:Program FilesRR-3.3.1library" C:UsersADMINI~1AppDataLocalTempRtmpGslxAF/downloaded_packages/installr_0.18.0.tar.gz"的狀態是1
2: In install.packages("installr") :
安裝程序包『installr』時退出狀態的值不是0
實測 還是重裝快一些 。。。
非原創,綜合知乎上的方式成功了。
install.packages("installr")
require(installr)
updateR()%這時候可能會讓你安裝stringr
install.packages("stringr")安裝packages不成功,所以我是在studio,packages,install裡面安裝的。
如果有anaconda的話可以用anaconda創建一個r的環境,然後用anaconda去更新r,就像更新Python一樣
Linux方法:
以我從3.3.3升級到3.4.1為例。
先把/home/andyhenry/R/x86_64-pc-linux-gnu-library/3.3(路徑)裡面的東西複製到/home/andyhenry/R/x86_64-pc-linux-gnu-library/3.4
然後運行:
&> install.packages(.packages(all.available = T))
Installing packages into 『/home/andyhenry/R/x86_64-pc-linux-gnu-library/3.4』
(as 『lib』 is unspecified)
Warning in install.packages :
packages 『AnnotationDbi』, 『Biobase』, 『BiocGenerics』, 『BiocInstaller』, 『IRanges』, 『S4Vectors』, 『base』, 『compiler』, 『datasets』, 『graphics』, 『grDevices』, 『grid』, 『methods』, 『parallel』, 『splines』, 『stats』, 『stats4』, 『tcltk』, 『tools』, 『utils』 are not available (for R version 3.4.1) #暫未適配新版本的包
Warning in install.packages :
packages 『base』, 『compiler』, 『datasets』, 『graphics』, 『grDevices』, 『grid』, 『methods』, 『parallel』, 『splines』, 『stats』, 『stats4』, 『tcltk』, 『tools』, 『utils』 are base packages, and should not be updated #R 3.4.1的基礎包,已經是3.4.1的版本
also installing the dependencies 『glue』, 『dplyr』, 『tidyr』, 『useful』 #依賴
本質上是重新編譯。
這裡有一個問題是,有的包存在依賴關係,所以需要先編譯被依賴的包,但這個方法並沒有這個判斷機制。好在這種情況不會太多,手動處理就可以了。
用的是notepad++吧,「腳本代碼編寫時沒有考慮到帶有空格名的路徑,建議把程序不要放在有空格名的文件夾里」,我是直接把軟體從program files提出來,放到D盤,這樣就行了。
我嘗試了installr包,會出現錯誤,請問有什麼更好的辦法解決嗎?
推薦閱讀: