R包更新

8

我在使用R中的一个软件包时,遇到了一些问题。

在运行数据分析工作流程时,出现了以下错误信息:

library(dplyr) Error: package or namespace load failed for ‘dplyr’ in loadNamespace(i, c(lib.loc, .libPaths()), versionCheck = vI[[i]]): namespace ‘rlang’ 0.2.1已经被加载,但需要0.2.2或更高版本

因此,我试图更新"dplyr"和"rlang"两个软件包。

在更新时,我得到了以下提示:

Installing package into ‘C:/Users/tomsp/OneDrive/Documents/R/win-library/3.5’ (as ‘lib’ is unspecified) --- Please select a CRAN mirror for use in this session --- trying URL 'https://cran.ma.imperial.ac.uk/bin/windows/contrib/3.5/rlang_0.2.2.zip' Content type 'application/zip' length 820944 bytes (801 KB) downloaded 801 KB

package ‘rlang’ successfully unpacked and MD5 sums checked Warning: cannot remove prior installation of package ‘rlang’

下载的二进制软件包在以下路径: C:\Users\tomsp\AppData\Local\Temp\RtmpmooXKa\downloaded_packages

然而,如果我使用下面的代码检查软件包,则它仍然是0.2.1版本:

packageVersion("rlang") [1] ‘0.2.1’

我检查了我的库路径,但仍然无法运行软件包rlang的最新版本(0.2.2)。

请问我做错了什么或如何解决这个问题?


1
您可以安装 checkpoint 包来使用特定版本的软件包。 - Rγσ ξηg Lιαη Ημ 雷欧
https://rud.is/b/2017/06/10/engaging-the-tidyverse-clean-slate-protocol/ - hrbrmstr
4个回答

13

重新启动 R 并再次运行 install.packages。 在 Windows 上,如果包含已编译的 C/C++/Fortran 代码,则无法更新已加载的软件包,这包括 dplyr 和 rlang。

为了确保万无一失,在运行 install.packages 之前,请进入您的 R 包目录 (C:/Users/tomsp/OneDrive/Documents/R/win-library/3.5),并删除任何存在的零长度文件。 这些是安装尝试失败的遗留物,如果存在,将破坏 install.packages


是的,只有在Windows上,当我删除C:/Users/xxx/Documents/R/win-library/4.1/xxxxx/目录时,它才对我起作用。 - Colibri

3

出于任何原因,至少在Windows中,某些R进程可能仍在后台运行。关闭当前的R会话,终止与R相关的所有进程,然后再尝试。


1
如果您使用的是Windows操作系统,请检查您尝试升级的软件包是否仅作为源文件提供。如果您尝试安装需要编译的软件包,则需要Rtools软件。您可以在cran.r-project.org/bin/windows/Rtools/上下载它。更新Rtools也可能解决您的问题。特定软件包的控制台消息如下:
                 binary source needs_compilation
      backports  1.2.0  1.2.1              TRUE
在Linux上,您不需要Rtools,但是当您尝试安装或更新软件包时,如果出现错误,请阅读控制台输出。如果缺少某些软件,则Linux上的错误消息是自说明的。

1

我在本地计算机的R包目录中删除了整个库。在终止会话后重新安装。这对我有用。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接