使用 R Studio 创建唯一 URL 列表

Create list of unique URLs using R Studio

我是 R Studio 新手,贪多嚼不烂 :)

我正在尝试使用 R Studio 创建 URL 列表。这些 URL 都遵循相同的逻辑,只是位置搜索字符串、年份和月份有所不同。下面是几个例子:

https://sunrise-sunset.org/search?location=mar%20del%20plata&year=2021&month=10#calendar

https://sunrise-sunset.org/search?location=bendigo%20victoria&year=1969&month=7#calendar

https://sunrise-sunset.org/search?location=parkville%20missouri%20usa&year=2025&month=2#calendar

我试过使用 paste0()c():

URLs <- paste0("https://sunrise-sunset.org/search?location=parkville%20missouri%20usa&year=",c(1969:2031),"&month=",c(1:12),"#calendar")

但是,通过对年和月使用两个单独的 c() 实例,生成的序列相互独立,我最终得到 60 个不同的 URL,而不是 750 个。有没有一种使用 paste0()? 为一系列年份 1969:2031 中的每一年生成一系列月份 1:12 的方法我正在努力完成?如果是这样,是否还有一种方法可以为多个位置生成这一系列的年和月?

一个选项使用 expand.grid 创建数据框并 apply 将所有行折叠成一个字符串。

base_url <- 'https://sunrise-sunset.org/search?location=parkville%20missouri%20usa&'

year_url <- paste0("year=",c(1969:2031))

mon_url <- paste0("&month=",c(1:12),"#calendar")

out_url <- apply(expand.grid(base_url, year_url, mon_url), 1, paste, collapse = '')

length(out_url)
#> [1] 756

head(out_url)
#> [1] "https://sunrise-sunset.org/search?location=parkville%20missouri%20usa&year=1969&month=1#calendar"
#> [2] "https://sunrise-sunset.org/search?location=parkville%20missouri%20usa&year=1970&month=1#calendar"
#> [3] "https://sunrise-sunset.org/search?location=parkville%20missouri%20usa&year=1971&month=1#calendar"
#> [4] "https://sunrise-sunset.org/search?location=parkville%20missouri%20usa&year=1972&month=1#calendar"
#> [5] "https://sunrise-sunset.org/search?location=parkville%20missouri%20usa&year=1973&month=1#calendar"
#> [6] "https://sunrise-sunset.org/search?location=parkville%20missouri%20usa&year=1974&month=1#calendar"

reprex package (v2.0.0)

于 2021-10-07 创建

或使用 rep 的不同选项在最长向量 (year_url) 中重复较短的向量(base_urlmon_url)相同的次数

paste0(rep(base_url, each = length(year_url)), 
       year_url, 
       rep(mon_url, each = length(year_url)))