在loadNamespace(j <-i [[1L]],c(lib.loc,.libPaths()),versionCheck = vI [[j]])中,“ car”的“ Rcmdr”错误加载失败:

时间:2018-11-27 23:04:23

标签: r namespaces openxlsx

我正在尝试在R中运行'Rcmdr'。我具有完整的功能,并意外退出了程序。现在我不能回来了。
我尝试了很多事情; 卸载并重新安装R 卸载并重新安装“ Rcmdr” 我尝试手动安装 尝试不同的“ CRAN” 以及我从以前的帖子中看到的所有建议。 (即(install.packages(“ car”,dependencies = TRUE)
以下是我收到的错误。

下载的二进制软件包位于C:\Users\william\AppData\Local\Temp\Rtmpuazyss\downloaded_packages

> library(Rcmdr)
Loading required package: RcmdrMisc
Loading required package: car
Error: package or namespace load failed for ‘car’ in loadNamespace(j <- i[[1L]], c(lib.loc, .libPaths()), versionCheck = vI[[j]]):
 there is no package called ‘openxlsx’
Error: package ‘car’ could not be loaded

1 个答案:

答案 0 :(得分:0)

此类错误的常见原因是,您正在对R软件包库没有写许可权的系统上工作。您安装了一个软件包(在这种情况下可能为openxlsx),由于它无法写入系统库,因此会在您具有写许可权的地方为您创建一个私有库。

但是,当您开始一个新会话时,它不在该位置,因此它认为未安装openxlsx,并且会收到与您看到的错误类似的错误消息。

一个短期修复是仅重新安装缺少的软件包。但是,如果重新启动R,您将在下一个会话中遇到相同的错误。

一个更好的解决方法是告诉R在您的私有库中查找。通过运行

重新安装openxlsx后,您可以找到它的位置。
.libPaths()

结果中的第一项可能是您的私有库,第二项是标准系统。 (您可以有2个以上,但是除非您已经要求更多,否则不可能。)为确保您的私人图书馆始终出现,您需要添加一行

.libPaths("whatever was in the first entry")

进入主目录中名为.Rprofile的文件。例如,我看到

> .libPaths()
[1] "/Users/me/R/contrib"                             
[2] "/Library/Frameworks/R.framework/Versions/3.5/Resources/library"

所以我应该有

.libPaths("/Users/me/R/contrib")

在我的.Rprofile中。您会在那里看到其他目录,使用它。