1

我想生成一个对应于一年中每一天的 URL 向量,但似乎无法弄清楚两件事:i)我想生成一个包含所有日期的 url 向量,但不断得到一个矩阵每个月生成一个向量(向量长度为​​ 372 而不是 12 列,每列 31);和 ii) 我想让单个数字与 0 连接,这样我得到的不是 1,2,3,而是 01,02,03。下面的代码非常感谢所有回复。

n <- 12
q <- 31
url_vec <- matrix(NA, ncol = 1, nrow = q)
full_url_vec <- as.data.frame(rep(NA, q)) 

for(j in 1:n){

            url_year <- paste("http://www.parliament.go.ug/hansard/hans_view_date.jsp?dateYYYY=2009&dateMM=", j, "&dateDD=", sep = "")                      
        for(i in 1:q){
        url <-  paste(url_year, "&dateDD=", i, sep = "")
        url_vec[i,] <- url          
    }

full_url_vec[,j] <- url_vec

}

dim(full_url_vec)
full_url_vec
4

2 回答 2

0

你甚至不需要循环。 paste被矢量化了
,也paste0省去了使用的步骤sep=""

i <- 1:31

urlBase  <- "http://yourwebiste.com/?dfdfsdfdfd."
urlSuffix <- "apikey=d323j43k43"

paste0(urlBase, i, urlSuffix)

至于与0's 连接,这里有一个函数,fw0()在 github 上可以做到这一点:链接:https ://github.com/rsaporta/pubR/blob/gitbranch/fw0.R

于 2013-03-12T18:18:25.570 回答
0

这是一种方法:sprintf与 结合使用paste。这里的关键是确保您的月份向量 ( j) 适当地循环,所以为此,我使用了rep.

j <- rep(sprintf("%02d", 1:12), each = 31)
i <- sprintf("%02d", 1:31)
url_year <- paste("http://some/siteMM=", j, "&dateDD=", i, sep = "")
length(url_year)
# [1] 372
head(url_year)
# [1] "http://some/siteMM=01&dateDD=01" "http://some/siteMM=01&dateDD=02"
# [3] "http://some/siteMM=01&dateDD=03" "http://some/siteMM=01&dateDD=04"
# [5] "http://some/siteMM=01&dateDD=05" "http://some/siteMM=01&dateDD=06"
tail(url_year)
# [1] "http://some/siteMM=12&dateDD=26" "http://some/siteMM=12&dateDD=27"
# [3] "http://some/siteMM=12&dateDD=28" "http://some/siteMM=12&dateDD=29"
# [5] "http://some/siteMM=12&dateDD=30" "http://some/siteMM=12&dateDD=31"
于 2013-03-12T18:51:55.943 回答