我安装了“tidyverse”,但显示错误。
Error: package or namespace load failed for ‘tidyverse’ in loadNamespace(j <- i[[1L]], c(lib.loc, .libPaths()), versionCheck = vI[[j]]):
there is no package called ‘fansi’
所以我安装了'fansi',它显示在下面。
> install.packages("fansi")
There is a binary version available but the source version is later:
binary source needs_compilation
fansi 0.4.2 0.5.0 TRUE
Do you want to install from sources the package which needs compilation? (Yes/no/cancel) yes
但我收到以下错误消息。
* installing *source* package ‘fansi’ ...
** package ‘fansi’ successfully unpacked and MD5 sums checked
** using staged installation
** libs
xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools), missing xcrun at: /Library/Developer/CommandLineTools/usr/bin/xcrun
ERROR: compilation failed for package ‘fansi’
* removing ‘/Library/Frameworks/R.framework/Versions/4.1/Resources/library/fansi’
Warning in install.packages :
installation of package ‘fansi’ had non-zero exit status
我尝试再次运行“tidyverse”,但仍然出现相同的错误。 您知道这是什么原因造成的以及如何解决吗?
答案 0 :(得分:1)
一般来说,作为新用户,在 R 中遇到问题 Do you want to install from sources the package which needs compilation? (Yes/no/cancel)
时,只需选择“否”就容易多了。
问题 Do you want to install from sources the package which needs compilation? (Yes/no/cancel)
告诉您,您尝试安装的一个(或多个)软件包的版本比可用的二进制版本更新。要理解这意味着什么,您需要对 R 包生态系统有所了解。
安装软件包的默认位置称为 CRAN(综合 R 存档网络)。这是一个网络服务器(实际上世界范围内有许多服务器),它有许多 R 包的副本。当为 R 编写包时,它们最初被编写并作为 source code 提交给 CRAN。然后将提交给 CRAN 的源代码compiled 转换为适用于 Windows 和 Mac OS 操作系统的 binary packages。
你可以把它想象成一家服装店。你可以去商店买一件夹克来应对寒冷的天气,或者在晴天买一顶帽子,或者其他很多选择。
包被编译成二进制文件是因为它们有 several advantages:它们使最终用户能够更快地安装,因为用户不需要自己编译源代码,从而节省了时间。它们也更易于用户管理,因为用户不需要额外的软件或工具,而且它们往往更稳定。然而,缺点是二进制文件特定于特定系统,通常是操作系统,有时甚至是特定版本的操作系统。从源代码编译包需要时间,特别是如果它是一个大包。二进制文件也(可能)不包含最新版本的代码,因此可能存在尚未修复的错误,或者可能缺少新功能或添加内容。
当 CRAN 收到更新的包时,可能需要几天时间才能将源代码编译为二进制文件。同时,如果用户尝试安装该软件包,则会显示您观察到的消息,让用户选择安装二进制文件,这通常会快得多,但可能没有一些新功能或可能包含尚未安装的错误尚未修复,或者源代码版本是最新版本,但需要您发现的额外工具。
在商店类比的上下文中,您可以将其视为服装店的新库存。他们收到了新库存,但还没有上架。你可以过几天再来,或者你可以找到盒子(需要用刀之类的工具才能打开)自己打开包装,然后拿到物品。
正如@Bruno 在评论中提到的,您需要 install Xcode 在 MacOS 上从源代码安装软件包或在 Windows 上安装 rtools。大多数情况下,安装这些附加工具就是从源代码构建软件包所需的全部内容,但有时事情可能不会那么顺利,这就是为什么安装二进制文件通常会更好的原因。
您在加载 tidyverse 时收到的关于冲突的说明是完全正常的。它是为了提醒您有多个来自不同包的同名函数,如果您没有意识到,这可能会导致问题。在大多数情况下,您无需担心,但如果出现问题,则非常easy to solve。