簡體   English   中英

如何“重新安裝並重新加載”本地 R 包?

[英]How to “reinstall and reload” a local R package?

我正在將統計算法實現到 R 包中,該包將用於我的分析。 R 包在我的磁盤上是本地的。

由於我對 R 包進行了大量更改,因此我希望我的分析腳本在每次運行時重新安裝並重新加載新的 R 包。

做到這一點的最佳方法是什么? 目前,我使用:

install.packages("~/my_package/", repos=NULL, type="source") 
library("my_package")

但是,似乎我仍然需要手動告訴 Rstudio 重新啟動我的 R 會話以啟動新版本。

您必須卸載當前版本的包,更新才能在您再次嘗試加載時生效。

detach("package:my_package", unload=TRUE)

注意: package是文字, my_package = 在此處插入您的包名

library(dplyr)
detach("package:dplyr", unload=TRUE)

如果一個包已經加載library()不會再次加載它。 你可以通過運行看到這一點

library(dplyr, verbose=TRUE)
library(dplyr, verbose=TRUE)

第一次運行這個命令時它會加載包,第二次它返回:

Warning message:
In library(dplyr, verbose = T) :
  package ‘dplyr’ already present in search()

library()使用is.na(match("package:dplyr",search()))的通用形式來確定是否附加了包,因此單獨運行library()不會更新當前加載的包因為此檢查不區分軟件包版本。

還值得注意的是,您必須首先unload所有依賴項,否則您會看到以下影響的錯誤:

警告消息:無法卸載“dplyr”命名空間:命名空間“dplyr”由 <package(s)> 導入,因此無法卸載

暫無
暫無

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

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