【问题标题】:How to update a package in R?如何在 R 中更新包?
【发布时间】:2018-12-13 19:42:26
【问题描述】:

我想将一个 R 包升级到已经可用的较新版本。我试过了

update.packages(c("R2jags"))

但它什么也没做!控制台上没有输出,没有错误,什么都没有。我使用了与install.packages 相同的语法,但也许我做错了什么。我一直在看?update.packages,但我无法弄清楚它是如何工作的,在哪里指定包等。没有例子。我还尝试使用install.packages 更新软件包以再次“安装”它,但显示“警告:软件包‘R2jags’正在使用中,不会被安装”

【问题讨论】:

  • 如果您阅读?update.pacakges,那么您会注意到update.packages 的第一个参数不是 包名称,而是要检查的库位置。如果您只想更新一个包,请使用install.packages。您报告的警告告诉您它为什么不起作用:您必须在所有使用它的 R 会话中停止使用该包。这很容易通过关闭有问题的 R 会话来完成。
  • ?Joshua 我在帮助中完全看到了你所说的 - 这就是为什么我说我不知道​​在哪里指定包。这不是很直观。那么update.packages 是干什么用的?
  • update.packagesDetails 部分告诉您它的用途。
  • @MehdiNellen 这是完全不同的问题。我在问我应该使用什么功能来安装软件包。我不需要覆盖任何东西,没有技巧,只需要知道功能。这个问题可以留在这里,以便其他用户通过 google 轻松找到它。
  • 好的,我将删除它并将链接作为评论留给任何正在查看stackoverflow.com/questions/13163248/…的人

标签: r


【解决方案1】:

恐怕你不能这样做,好吧,update.packages() 不行。您需要改为致电install.packages("R2jags")

您无法在当前会话中安装 R2jags,因为您已经将当前版本加载到会话中。如果需要,请保存无法轻松重新创建的任何对象,然后退出 R。然后启动新的 R 会话,立即运行 install.packages("R2jags"),然后在完成后,加载包并重新加载任何以前保存的对象。您可以尝试通过以下方式卸载包:

detach(package:R2jags, unload = TRUE)

但是要干净地做到这一点是相当复杂的,除非包自己清理干净。

update.packages() 用于更新指定库位置中的所有过时软件包。该库位置由第一个参数给出(如果未提供,它适用于当前 R 会话的所有已知库位置)。因此,您要求它更新库位置 R2jags 中的软件包,这在您的 R 安装中不太可能存在。

【讨论】:

  • 加文,谢谢!!所以install.packages 做到了!但是不需要detach 的东西,闭幕会议等!我刚开始新的 R 并从那里安装它!不喜欢现在重启...
  • @Tomas 很明显,但是您给人的印象是您希望在当前会话中使用新的 R2jags。否则,您收到的警告信息是什么误解?
  • Gavin,我很高兴先测试新包。好吧,误解是我直觉地认为update.packages 函数应该可以工作,而install.packages 不会这样做。
  • @Tomas 小心,你不能测试新的R2jags除非你把它安装到一个新的库位置。如果您不这样做,旧版本将仅在当前运行的会话中可用。如果您在当前会话中加载包的库位置更新包(从另一个会话),帮助文件等也可能存在问题。
【解决方案2】:

此外,您可以通过转到Tools 菜单并选择Check for Package Updates 来安装RStudio 并更新所有软件包。

【讨论】:

    【解决方案3】:
    # The following two commands remove any previously installed H2O packages for R.
    if ("package:h2o" %in% search()) { detach("package:h2o", unload=TRUE) }
    if ("h2o" %in% rownames(installed.packages())) { remove.packages("h2o") }
    
    # Next, we download packages that H2O depends on.
    pkgs <- c("RCurl","jsonlite")
    for (pkg in pkgs) {
    if (! (pkg %in% rownames(installed.packages()))) { install.packages(pkg) }
    }
    
    # Now we download, install and initialize the H2O package for R.
    install.packages("h2o", type="source", repos="http://h2o-release.s3.amazonaws.com/h2o/rel-xia/2/R")
    
    # Finally, let's load H2O and start up an H2O cluster
    library(h2o)`enter code here`
    h2o.init()
    

    【讨论】:

      猜你喜欢
      • 2017-01-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-04
      • 2019-12-21
      • 1970-01-01
      • 2022-08-20
      • 1970-01-01
      相关资源
      最近更新 更多