首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >R:更新R或RStudio后软件包的更新或安装中的许多问题

R:更新R或RStudio后软件包的更新或安装中的许多问题
EN

Stack Overflow用户
提问于 2018-12-23 00:00:16
回答 1查看 2.5K关注 0票数 0

当我做R或RStudio更新时,我遇到了一连串的问题。在更新之后的几个会话中,我得到了关于这些问题的。这个信息很明显吗?如果没有,我该如何诊断?

问题的形式如下:

  1. 出现在我的R库中的包会导致错误。最常见的是tidyverse包。
  2. 没有安装tidyverse的某些依赖项,特别是stringi。类似的问题在Hmisc中出现的频率较低。
  3. 包已正确下载,但我收到一个错误,说明无法删除旧版本。如果我移除手动显示的软件包并单独安装,这些错误就消失了。
  4. 如果我尝试用tidyverse更新tidyverse_update,我也会遇到类似的问题,例如: Tidyverse::tidyverse_update(递归=真)loadNamespace中的错误(j <- i[1L],c(lib.loc,.libPaths(),versionCheck =vI[j])):没有名为“readr”的包

这一点,尽管重新读取器包实际上是存在的。

  1. 我刚才收到了一条新的错误消息,它是关于试图单独安装readr的: Install.packages中的警告: lzma解码结果install.packages中的10条警告:无法访问存储库的索引https://cran.case.edu/bin/windows/contrib/3.5:行启动'Pac .‘是畸形的!

再试一次:

代码语言:javascript
运行
复制
Error in install.packages : invalid version specification ‘NA’

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

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

代码语言:javascript
运行
复制
# 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))
}

这是我的会话信息。

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

回答 1

Stack Overflow用户

发布于 2019-02-02 17:07:55

我发现,如果我这样做的话,这些问题中的大多数-尽管不是全部-消失了:

  1. 确保我只有一个R实例。
  2. 设置为R和RStudio以作为管理员运行。

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

  1. 将R文件夹本身及其所有子文件夹设置为shared。(请注意,如果您在共享机器上,这会造成安全风险)。右击R目录--通常是在“我的文档”文件夹中,而不是在程序文件中--然后在“共享”选项卡下点击“共享”。

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53900192

复制
相关文章

相似问题

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