gpt4 book ai didi

r - 如果指定了多个 repos,install.packages 的行为是什么?

转载 作者:行者123 更新时间:2023-12-04 08:47:21 25 4
gpt4 key购买 nike

从文档中不清楚如果在 install.packages 中指定了多个 repos 是什么行为。我的直觉告诉我它会尝试第一个 repo,如果找不到包,它会尝试第二个,依此类推。不幸的是,情况似乎并非如此。我看到的是只尝试了第一个,并返回了错误(因为 repo 不包含包)。与不同的条目相比,“CRAN”条目的处理方式也不够清晰。

我想要的是一个带有我自己的包(首先指定)的本地 CRAN,以及带有更大包集(第二个指定)的全局 CRAN,并且能够从本地安装,除非找不到包(并且在那个包中)情况下,它将回落到全局)

这是我得到的错误

> setRepositories(graphics = FALSE, ind=NULL, addURLs=c(ciccio="file:qs-cran", CRAN="https://mran.microsoft.com/snapshot/2018-08-01"))
> install.packages("zizzio")
Error in read.dcf(file = tmpf) : cannot open the connection
In addition: Warning messages:
1: package ‘zizzio’ is not available (for R version 3.5.3)
2: In read.dcf(file = tmpf) :
cannot open compressed file 'qs-cran/bin/macosx/el-capitan/contrib/3.5/PACKAGES', probable reason 'No such file or directory'
> install.packages("zizzio", type="source")
Warning message:
package ‘zizzio’ is not available (for R version 3.5.3)

最佳答案

我认为您的问题是您的本地存储库没有 PACKAGES文件。包含包的 repo 中的每个目录都必须有这个文件,因为 R 就是这样知道什么是可用的。所以 R 首先尝试该 repo,当它需要的文件不存在时遇到错误,并在查看下一个 repo 之前停止。

官方手册《R安装与管理》describes what's necessary for a repository .

您可以创建 PACKAGES文件:

tools::write_PACKAGES(
"qs-cran/bin/macosx/el-capitan/contrib/3.5",
type = "mac.binary"
)

之后,您的存储库应如下所示:
qs-cran/
└ bin/macosx/el-capitan/contrib/3.5/
├ PACKAGES
└ zizzio_1.0.0.zip

从那时起,无论何时添加、更改或删除包,请使用:
tools::update_PACKAGES(
"qs-cran/bin/macosx/el-capitan/contrib/3.5",
type = "mac.binary"
)

关于r - 如果指定了多个 repos,install.packages 的行为是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58341427/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com