首页 > 解决方案 > R:更新 R 或 RStudio 后更新或安装包的许多问题

问题描述

当我进行 R 或 RStudio 更新时,我遇到了一系列问题。在更新后的接下来的几个会话中,我遇到了很多这些问题。这些信息中的问题是否明显?如果不是,我该如何诊断?

问题有以下几种形式:

  1. 我的 R 库中存在的包将错误视为缺失。大多数情况下,这些是tidyverse包。
  2. tidyverse 的某些依赖项没有安装,尤其是stringi. 类似的问题发生的频率较低Hmisc
  3. 软件包已正确下载,但我收到一条错误消息,指出无法删除旧版本。如果我删除手动指示的软件包并单独安装它们,这些错误就会消失。
  4. 如果我尝试使用 更新tidyverse, 我会遇到类似的问题tidyverse_update,例如:

    tidyverse::tidyverse_update(recursive = TRUE) loadNamespace 中的错误(j <- i[[1L]], c(lib.loc, .libPaths()), versionCheck = vI[[j]]): 没有调用包'阅读器'</p>

尽管实际上存在 readr 包。

  1. 我刚刚收到一条关于尝试单独安装 readr 的新错误消息:

    install.packages 中的警告:lzma 解码结果 10 install.packages 中的警告:无法访问存储库 https://cran.case.edu/bin/windows/contrib/3.5的索引:开始“Pac ...”的行格式错误!

再试一次:

Error in install.packages : invalid version specification ‘NA’

我通常用update.packages(ask=FALSE). 我将 RStudio 设置为始终以管理员身份运行。如果被问到,我通常从二进制文件而不是源代码安装。

我使用以下功能安装和加载包组:

# Install packages (if not already installed)
in_packs <- function(packs){
  new_packs <- packs[!(packs %in% installed.packages()[,"Package"])]
  if(length(new_packs) < 1) print("Already installed.") else {
    install.packages(new_packs, dependencies = TRUE,      # move to fairR_fns 
                        repos=c("https://cran.case.edu/",
                                "https://cran.rstudio.com"))

# Load packages (if not already installed)
load_pks <- function(pks){
  invisible(sapply(X = pks[seq_along(pks)], FUN = library, character.only = TRUE))
}

这是我的会话信息。

R version 3.5.1 (2018-07-02)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows >= 8 x64 (build 9200)

Matrix products: default

locale:
[1] LC_COLLATE=English_United States.1252 
[2] LC_CTYPE=English_United States.1252   
[3] LC_MONETARY=English_United States.1252
[4] LC_NUMERIC=C                          
[5] LC_TIME=English_United States.1252    

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

loaded via a namespace (and not attached):
 [1] Rcpp_1.0.0       lubridate_1.7.4  lattice_0.20-38  tidyr_0.8.2     
 [5] assertthat_0.2.0 digest_0.6.18    R6_2.3.0         plyr_1.8.4      
 [9] backports_1.1.3  httr_1.4.0       ggplot2_3.1.0    pillar_1.3.1    
[13] rlang_0.3.0.1    lazyeval_0.2.1   stringr_1.3.1    munsell_0.5.0   
[17] broom_0.5.1      compiler_3.5.1   modelr_0.1.2     pkgconfig_2.0.2 
[21] tidyselect_0.2.5 tibble_1.4.2     crayon_1.3.4     dplyr_0.7.8     
[25] grid_3.5.1       nlme_3.1-137     jsonlite_1.6     gtable_0.2.0    
[29] magrittr_1.5     scales_1.0.0     cli_1.0.1        stringi_1.2.4   
[33] bindrcpp_0.2.2   generics_0.0.2   tools_3.5.1      forcats_0.3.0   
[37] glue_1.3.0       purrr_0.2.5      hms_0.4.2        yaml_2.2.0      
[41] colorspace_1.3-2 memoise_1.1.0    bindr_0.1.1      haven_2.0.0     

标签: rinstallationpackagetidyverseupdating

解决方案


我发现,如果我执行以下操作,这些问题中的大多数(尽管不是全部)都会消失:

  1. 确保我只打开了一个 R 实例。
  2. 将R 和 RStudio设置为以管理员身份运行。

这有点棘手,因为正在运行的 RI 的实例化通常由 RStudio 打开,而不是由我打开。对于 RStudio 和 R,右键单击桌面或开始菜单上的快捷方式。在快捷方式选项卡上,选择高级。然后选中以管理员身份运行复选框。我还允许其他程序修改程序文件中的 R 目录,尽管我不确定这是否必要。右键单击,属性,安全选项卡,选择所有应用程序包,单击编辑,选中完全控制。

  1. 将 R 文件夹本身及其所有子文件夹设置为共享。(请注意,如果您在共享计算机上,这会产生安全风险)。右键单击 R 目录——通常是“我的文档”文件夹中的那个,而不是 Program Files 中的那个——然后在共享选项卡下,点击共享。

在完成这些事情后仍然存在的问题中,大多数似乎是由存储库副本的问题引起的,通常是短期的。这些问题不仅会干扰损坏的(或其他)包,还会干扰它的依赖关系。手动删除问题包的文件夹,重新启动 R,然后在加载任何包之前切换到不同的存储库。然后照常安装


推荐阅读