首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在R中更新包:`update.packages`与`install.packages`

在R中更新包:`update.packages`与`install.packages`
EN

Stack Overflow用户
提问于 2014-07-07 00:18:58
回答 2查看 11.1K关注 0票数 4

我尝试加载party库,但得到以下错误:

代码语言:javascript
复制
 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

因此,我决定更新同一会话(detach all packages while working in R)中的所有包,包括lattice,希望zoopartylattice更新后能够正确加载:

代码语言:javascript
复制
 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")
 )

它不工作(在相同的会话中,并且在没有预加载.RData的情况下重新启动后):

代码语言:javascript
复制
 > 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,而install.package将以重启会话为代价来完成这项工作?我遗漏了什么R包管理巫术?谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-07-07 00:24:41

这就是为什么我更喜欢在我当前工作的R会话之外启动“安装”和“更新”操作的另一个原因。

通过使用命令行,我可以在没有加载包的情况下获得新的R会话,并且不会出现您在这里遇到的问题。作为一种快捷方式,我使用littler (包含在该包的examples/目录中)定义脚本update.rinstall.r,当然,您也可以通过Rscript执行相同的操作。

票数 7
EN

Stack Overflow用户

发布于 2014-07-07 02:34:07

Dirk提供了一个更一般的策略来避免这个问题。然而,如果你在一个交互会话中,你不想重新启动,并且你想卸载一个需要更新的包( detach(.)-ing或update.packages(.)-ing都不能有效地完成),那么有一个函数unloadNamespace通常对我来说是有效的。在它的帮助页面上有警告,说它不是完全安全的,但我没有遇到困难。尝试:

代码语言:javascript
复制
unloadNamespace("lattice")   # or lapply()-ing as you attempted with `detach`
update.packages("lattice")
require(lattice)  # or library()
票数 10
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24597858

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档