使用 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_url
和 mon_url
)相同的次数
paste0(rep(base_url, each = length(year_url)),
year_url,
rep(mon_url, each = length(year_url)))
我是 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_url
和 mon_url
)相同的次数
paste0(rep(base_url, each = length(year_url)),
year_url,
rep(mon_url, each = length(year_url)))