installr 不会将软件包复制到新版本的 R

Cla*_* Li 5 r package installr

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

JBG*_*ber 6

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

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

  1. 拿到你的旧包裹
    old_packages <- installed.packages(lib.loc = "/home/johannes/R/x86_64-pc-linux-gnu-library/3.6/")
    
    Run Code Online (Sandbox Code Playgroud)

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

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

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

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

我写这在我的博客前一段时间在这里,但这些都是必不可少的步骤,你应该是好去。