我想生成一个对应于一年中每一天的URL的向量,但是似乎无法弄清楚两件事:i)我想生成一个包含所有日期的网址向量但是一直在一个矩阵,每个月产生一个向量(向量长度372而不是31列的12列);和ii)我希望单个数字与0连接,所以我得到01,02,03而不是1,2,3。以下代码,非常感谢所有回复。
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
答案 0 :(得分:0)
你甚至不需要循环。 paste
已向量化
此外,paste0
可为您节省使用sep=""
i <- 1:31
urlBase <- "http://yourwebiste.com/?dfdfsdfdfd."
urlSuffix <- "apikey=d323j43k43"
paste0(urlBase, i, urlSuffix)
就与0
的连接而言,这是github上的一个函数fw0()
,它可以做到:
链接:https://github.com/rsaporta/pubR/blob/gitbranch/fw0.R
答案 1 :(得分: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"