gpt4 book ai didi

r - 在 R 中以可变长度、嵌套 URL 下载多个文件

转载 作者:行者123 更新时间:2023-12-04 12:22:06 26 4
gpt4 key购买 nike

这里有新成员。尝试从 R 中的网站下载大量文件(但也接受建议,例如 wget。)

来自 this post ,我知道我必须创建一个带有所需 URL 的向量。我最初的问题是写这个向量,因为我有 27 个州和每个州内的 34 个机构。我必须为所有州的每个机构下载一个文件。州代码始终为两个字符,而机构代码则为 2 到 7 个字符。 URL 如下所示:

http://website.gov/xx_yyyyyyy.zip

其中 xx 是州代码,yyyyyyy 是机构代码,长度在 2 到 7 个字符之间。我不知道如何建立一个这样的循环。

我假设我可以使用以下功能下载此 url 列表:

for(i in 1:length(url)){
download.file(urls, destinations, mode="wb")}

这有意义吗?

(免责声明:此帖子的早期版本较早上传但不完整。我的错误,对不起!)

最佳答案

如果 libcurl 选项在您的 R 安装中可用,这将分批下载它们并利用 download.file() 更快的同时下载功能:

library(purrr)

states <- state.abb[1:27]
agencies <- c("AID", "AMBC", "AMTRAK", "APHIS", "ATF", "BBG", "DOJ", "DOT",
"BIA", "BLM", "BOP", "CBFO", "CBP", "CCR", "CEQ", "CFTC", "CIA",
"CIS", "CMS", "CNS", "CO", "CPSC", "CRIM", "CRT", "CSB", "CSOSA",
"DA", "DEA", "DHS", "DIA", "DNFSB", "DOC", "DOD", "DOE", "DOI")

walk(states, function(x) {
map(x, ~sprintf("http://website.gov/%s_%s.zip", ., agencies)) %>%
flatten_chr() -> urls
download.file(urls, basename(urls), method="libcurl")
})

关于r - 在 R 中以可变长度、嵌套 URL 下载多个文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41185735/

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