【发布时间】:2022-05-07 23:29:23
【问题描述】:
我一直在尝试将插入符号库用于简单的 ML 应用程序。我正在使用最新版本的 R (3.4.3) 和 RStudio (1.1.414)。这是我的方法
install.packages("caret",repos = "http://cran.r-project.org", dependencies = c("Depends", "Imports", "Suggests"))
当我运行代码库(插入符号)时,出现以下错误
Error: package or namespace load failed for ‘caret’ in loadNamespace(j <- i[[1L]], c(lib.loc, .libPaths()), versionCheck = vI[[j]]):
there is no package called ‘gower’
现在我继续安装它建议的软件包,即 DEoptimR、gower 等。这个列表永远不会结束,因为一旦我安装了一个软件包,它就会要求另一个软件包。我很沮丧。我确实在每个论坛中查找过,但它并没有解决我的问题。我不确定为什么代码 install.package 没有安装所有必需的包,即使我明确要求这样做。当我检查 .libPaths() 时,我可以看到它可以访问我的两个库目录
[1] "C:/Users/omid/Documents/R/win-library/3.4"
[2] "C:/Program Files/R/R-3.4.3/library"
有人可以帮忙吗?
编辑 1:
install.packages("caret",repos = "https://cran.r-project.org", dependencies = c("Depends", "Imports"))
Installing package into ‘C:/Users/omidm/Documents/R/win-library/3.4’
(as ‘lib’ is unspecified)
trying URL 'https://cran.r-project.org/bin/windows/contrib/3.4/caret_6.0-78.zip'
Content type 'application/zip' length 5155777 bytes (4.9 MB)
downloaded 4.9 MB
package ‘caret’ successfully unpacked and MD5 sums checked
The downloaded binary packages are in
C:\Users\omidm\AppData\Local\Temp\RtmpGuZ1vH\downloaded_packages
library(caret)
Loading required package: lattice
Loading required package: ggplot2
Error: package or namespace load failed for ‘caret’ in loadNamespace(j <- i[[1L]], c(lib.loc, .libPaths()), versionCheck = vI[[j]]):
there is no package called ‘gower’
我还卸载了 R 和 RStudio 并重新安装了它们。仍然出现同样的错误。
已解决:
我设法以某种方式解决了这个问题,但是,我仍然不确定如何解决。这就是我所做的
打开 R GUI(不是 RStudio)并运行:
install.packages("installr") # install
installr::updateR() # updating R
键入 q() 退出然后打开 RStudio。转到包并更新所有包
根据@chinsoon 和@Ronald 的 cmets 安装包插入符号
install.packages("caret", dependencies=c("Depends", "Imports"))
如果您仍然收到有关任何软件包的错误,请安装该软件包。它不会要求任何其他包,因为您已从依赖项中删除了“建议”。希望这能解决一些人的问题。
【问题讨论】:
-
这很奇怪,尤其是因为您使用的是最新版本的 R。
-
运行时能不能发消息
install.packages("caret", repos="https://cran.r-project.org") -
我可以用你的代码重现这个。使用
dependencies = c("Depends", "Imports")。无论如何,您可能不需要建议的软件包。另外,现在推荐使用https://。 -
依赖项的安装不是递归的,即依赖项的依赖项可能不会被包含在内,并且插入符号需要很多包,所以它似乎永远不会结束,但事实并非如此。
caret包实际上是在统一格式下捆绑了许多不同的包。 -
安装依赖是递归的:如果
caret需要gower,那么所有需要加载它的gower的依赖也会被安装。您不一定会获得gower的“建议”包,但您应该获得其他所有内容。