3

尝试附加包tidyselect和尝试调用时出现此错误tidyselect::any_function

该错误发生在Rstudio命令行或命令行中,RStudio只要我键入:就会触发它tidyselect::,尽管?tidyselect::工作正常,我可以调用?tidyselect::any_function.

这也有效:

packageVersion("tidyselect") # [1] ‘0.2.4

它曾经工作过,我不明白发生了什么变化,我只知道软件包rjava已经安装,管理员可能也改变了一些东西。

首先一个弹出窗口说:

过程入口点 R_ContinueUnwind 无法位于动态链接库 R.dll 中

然后在控制台中显示错误:

inDL(x, as.logical(local), as.logical(now), ...) 中的错误:

无法加载共享对象'//edited_UNC_path.com/edited_pa​​th/tidyselect/libs/x64/tidyselect.dll':

LoadLibrary 失败:找不到指定的过程。

dll文件存在:

file.exists('//edited_UNC_path.com/edited_path/tidyselect/libs/x64/tidyselect.dll') # [1] TRUE

配置:

sessionInfo()
R version 3.3.1 (2016-06-21)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows 7 x64 (build 7601) Service Pack 1

locale:
[1] LC_COLLATE=English_United States.1252  LC_CTYPE=English_United States.1252   
[3] LC_MONETARY=English_United States.1252 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] tools_3.3.1

知道如何解决这个问题吗?

4

2 回答 2

3

我不知道为什么会发生此事件,因为我目前面临同样的问题。无论如何,我可以解释你的解决方案。

32 与 64 位

您的系统是 64 位的,如sessionInfo(). i386体系结构适用于较旧的系统,采用 32 位(它们只能处理有限数量的内存,因为它们使用 32 位内存地址,而今天的 64 位系统实际上是无限的)。

R中发生了什么

R 中的经典安装是多架构的“multiarch”,即 32 位和 64 位。在 64 位系统中,构建 32 位软件没有问题。但是,您可能没有为这两种架构安装所有依赖项(例如 C++ 库)。您的 32 位安装显然存在问题。然后安装包INSTALL_opts="--no-multiarch"只安装 64 位版本(你需要的那个),没有问题。

于 2020-03-31T08:42:38.087 回答
1

这是通过tidyselect使用重新安装解决的:

install.packages("tidyselect",INSTALL_opts="--no-multiarch")

(尽管可以安装软件包而install.packages("tidyselect")不会出错。

这个答案向我指出了解决方案(尽管完全不同的问题)。

看来这确实是一个问题rjava

引用链接的答案:

解决方案是使用简单地忘记 i386 架构的安装选项。(也适用于不来自 CRAN 的 drat 库和包

不过,这对我来说都是中文并且?utils::install.packages没有帮助,我会很高兴地投票/接受一个解释正在发生的事情的答案。

于 2018-09-03T15:58:41.670 回答