gpt4 book ai didi

r - 更新 R 中的包 : `update.packages` vs. `install.packages`

转载 作者:行者123 更新时间:2023-12-03 03:38:30 25 4
gpt4 key购买 nike

我尝试加载 party 库并收到以下错误:

 Loading required package: zoo
Error in loadNamespace(i, c(lib.loc, .libPaths()), versionCheck = vI[[i]]) :
namespace ‘lattice’ 0.20-24 is already loaded, but >= 0.20.27 is required
Error: package ‘zoo’ could not be loaded

因此,我决定更新同一 session ( detach all packages while working in R ) 中的所有软件包,包括 lattice,希望 zooparty一旦更新lattice,就会正确加载:

 pkgs <- names( sessionInfo()$otherPkgs )
pkgs <- paste('package:', pkgs, sep = "")
lapply( pkgs , detach, character.only = TRUE, unload = TRUE)
update.packages(checkBuilt=TRUE, ask=FALSE,
repos="http://r-forge.r-project.org",
oldPkgs=c("lattice","zoo","party")
)

它不起作用(在同一 session 内并且在未预加载 .RData 的情况下重新启动后):

 > library(party)
Loading required package: zoo
Error in loadNamespace(i, c(lib.loc, .libPaths()), versionCheck = vI[[i]]) :
namespace ‘lattice’ 0.20-24 is already loaded, but >= 0.20.27 is required
Error: package ‘zoo’ could not be loaded

根据How to update R2jags in R?最好只在我想要更新的软件包上运行 install.packages,然后重新启动。确实,它成功了。

所以问题是:何时调用 update.packages ,因为至少可以说,运行 session 中的更新很脆弱,而 install.package 就可以了以重新启动 session 为代价的技巧?我缺少什么 R 包管理巫术?谢谢。

最佳答案

Dirk 提供了一个更通用的策略来避免这个问题。但是,如果您处于交互式 session 中,并且不想重新启动,并且想要卸载需要更新的软件包( detach(.) -ing 或 update.packages(.) -ing 都无法有效完成),那么有一个函数,unloadNamespace这通常对我有用。它的帮助页面中有警告说它并不完全安全,但我没有遇到困难。尝试:

unloadNamespace("lattice")   # or lapply()-ing as you attempted with `detach`
update.packages("lattice")
require(lattice) # or library()

关于r - 更新 R 中的包 : `update.packages` vs. `install.packages`,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24597858/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com