使用常量和变化的 url 部分创建 url 序列

Creating a sequence of urls with constant and changing url sections

我正在尝试生成一个 url 向量,其结构类似于下面所需输出中概述的 url。该结构相当简单,但我似乎无法获得正确的循环结构。我编写的当前 for 循环结构循环遍历 offset 向量,但没有正确循环遍历 fromto 向量。

## seq of vectors    
offset <- seq(from = 0, to = 600, by = 300)
from <- seq(from = 1, to = 29, by = 2)
to <- seq(from = 2, to = 30, by = 2)

## url structure
url1 <- "https://url.com/&offset="
url2 <- "&from="
url3 <- "&to="
url4 <- "&order=date"

## try 1: generates 15 urls
urlSeq <- paste0(url1, offset, url2, from, url3, to, url4)

## try 2: generates a list of 599 urls
urlSeq <- list()
i <- 1
j <- 1
k <- 1
for (i in 1:length(from)) {
  for (j in 1:length(to)) {
    while (k < 600) {
      urlSeq[k] <- paste0(url1, offset[k], url2, from[i], url3, to[j], url4)
      k <- k+1
    }
    j <- j+1
  }
  i <- i+1
}

## desired output (15 x 3 vector of urls)
## truncated for illustration purposes
> [1] "https://url.com/&offset=0&from=1&to=2&order=date"     "https://url.com/&offset=300&from=1&to=2&order=date"   "https://url.com/&offset=600&from=1&to=2&order=date"  
> [4] "https://url.com/&offset=0&from=3&to=4&order=date"     "https://url.com/&offset=300&from=3&to=4&order=date"  "https://url.com/&offset=600&from=3&to=4&order=date"
> [7] "https://url.com/&offset=0&from=5&to=6&order=date"   "https://url.com/&offset=300&from=5&to=6&order=date" "https://url.com/&offset=600&from=5&to=6&order=date"

试试这个:

## seq of vectors    
offset <- seq(from = 0, to = 600, by = 300)
from <- seq(from = 1, to = 29, by = 2)
to <- seq(from = 2, to = 30, by = 2)

## url structure
url1 <- "https://url.com/&offset="
url2 <- "&from="
url3 <- "&to="
url4 <- "&order=date"

# vector witk all offset values
urlSeq <- paste0(url1, offset)

# loop every element in 'from' and 'to' and paste them to the above vector
urlSeq = sapply(1:length(from), function(x){
  paste0(urlSeq, url2, from[x], url3, to[x])
})

# Convert to a vector (from matrix)
urlSeq = as.vector(urlSeq)

# Paste the date
urlSeq= paste0(urlSeq, url4)

结果:

 > urlSeq
 [1] "https://url.com/&offset=0&from=1&to=2&order=date"    
 [2] "https://url.com/&offset=300&from=1&to=2&order=date"  
 [3] "https://url.com/&offset=600&from=1&to=2&order=date"  
 [4] "https://url.com/&offset=0&from=3&to=4&order=date"    
 [5] "https://url.com/&offset=300&from=3&to=4&order=date"  
 [6] "https://url.com/&offset=600&from=3&to=4&order=date"  
 [7] "https://url.com/&offset=0&from=5&to=6&order=date"    
 [8] "https://url.com/&offset=300&from=5&to=6&order=date"  
 [9] "https://url.com/&offset=600&from=5&to=6&order=date"  
[10] "https://url.com/&offset=0&from=7&to=8&order=date"    
[11] "https://url.com/&offset=300&from=7&to=8&order=date"  
[12] "https://url.com/&offset=600&from=7&to=8&order=date"  
[13] "https://url.com/&offset=0&from=9&to=10&order=date"   
[14] "https://url.com/&offset=300&from=9&to=10&order=date" 
[15] "https://url.com/&offset=600&from=9&to=10&order=date" 
[16] "https://url.com/&offset=0&from=11&to=12&order=date"  
[17] "https://url.com/&offset=300&from=11&to=12&order=date"
[18] "https://url.com/&offset=600&from=11&to=12&order=date"
[19] "https://url.com/&offset=0&from=13&to=14&order=date"  
[20] "https://url.com/&offset=300&from=13&to=14&order=date"
[21] "https://url.com/&offset=600&from=13&to=14&order=date"
[22] "https://url.com/&offset=0&from=15&to=16&order=date"  
[23] "https://url.com/&offset=300&from=15&to=16&order=date"
[24] "https://url.com/&offset=600&from=15&to=16&order=date"
[25] "https://url.com/&offset=0&from=17&to=18&order=date"  
[26] "https://url.com/&offset=300&from=17&to=18&order=date"
[27] "https://url.com/&offset=600&from=17&to=18&order=date"
[28] "https://url.com/&offset=0&from=19&to=20&order=date"  
[29] "https://url.com/&offset=300&from=19&to=20&order=date"
[30] "https://url.com/&offset=600&from=19&to=20&order=date"
[31] "https://url.com/&offset=0&from=21&to=22&order=date"  
[32] "https://url.com/&offset=300&from=21&to=22&order=date"
[33] "https://url.com/&offset=600&from=21&to=22&order=date"
[34] "https://url.com/&offset=0&from=23&to=24&order=date"  
[35] "https://url.com/&offset=300&from=23&to=24&order=date"
[36] "https://url.com/&offset=600&from=23&to=24&order=date"
[37] "https://url.com/&offset=0&from=25&to=26&order=date"  
[38] "https://url.com/&offset=300&from=25&to=26&order=date"
[39] "https://url.com/&offset=600&from=25&to=26&order=date"
[40] "https://url.com/&offset=0&from=27&to=28&order=date"  
[41] "https://url.com/&offset=300&from=27&to=28&order=date"
[42] "https://url.com/&offset=600&from=27&to=28&order=date"
[43] "https://url.com/&offset=0&from=29&to=30&order=date"  
[44] "https://url.com/&offset=300&from=29&to=30&order=date"
[45] "https://url.com/&offset=600&from=29&to=30&order=date"