首页 > 解决方案 > 安装程序不会将包复制到新版本的 R

问题描述

我最近使用程序包来更新我的 R 版本(从 3.6.2 到 4.0.0)。更新成功,我已确认使用print(R.version). 但是,尽管我严格按照这些步骤操作,但我的旧版本 R 的包还没有复制到新版本。我也尝试过运行copy.packages.between.libraries(ask = T)将包复制过来。No packages to copy. Goodbye :)尽管我无法加载以前安装在旧版本上的任何软件包,但两次都返回了。

标签: rpackageinstallr

解决方案


这是因为从 R 3.6.x 更新到 4.x 需要您重新安装所有软件包(请参阅新闻)。

我发现这样做的最好方法是:

  1. 获取您的旧包裹
    old_packages <- installed.packages(lib.loc = "/home/johannes/R/x86_64-pc-linux-gnu-library/3.6/")
    

当然,您必须将路径更改为您的包所在的路径。只需使用.libPaths(),如果您已经安装了新的 R 版本,请将其替换4.03.6.

  1. 根据已安装的软件包检查旧的:

    new_packages <- installed.packages()
    missing_df <- as.data.frame(old_packages[
      !old_packages[, "Package"] %in% new_packages[, "Package"], 
      ])
    
  2. 安装缺少的软件包(使用多个内核来提高速度)

    install.packages(missing_df$Package, Ncpus = 3)

我前段时间在我的博客上写了这篇文章但这些是必不可少的步骤,你应该很高兴。


推荐阅读