用于生成URL的循环和向量;循环中的数字
我想生成一个对应于一年中每一天的URL向量,但似乎无法解决两件事:I)我想生成一个包含所有日期的URL向量,但不断得到一个矩阵,每个月生成一个向量(向量长度372,而不是12列31);ii)我希望将单个数字与0连接起来,这样我得到的不是1,2,3,而是01,02,03。下面是代码,非常感谢所有回复用于生成URL的循环和向量;循环中的数字,r,loops,matrix,R,Loops,Matrix,我想生成一个对应于一年中每一天的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(
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
n您甚至不需要循环<代码>粘贴
已矢量化另外,
paste0
保存了使用sep=“”
i这里有一种方法:将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"
j非常感谢您的帮助-这太棒了,而且效率更高。
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"