@@ -131,10 +131,16 @@ cvrplib_url <- "http://vrp.atd-lab.inf.puc-rio.br/media/com_vrp/instances/"
131131cvrplib_ls <- function () {
132132 # reading directories first
133133 rel_dirs <-
134- xml2 :: read_html(paste0(readLines(url(cvrplib_url )), collapse = " \n " )) | >
135- xml2 :: xml_find_all(" //a[substring(@href, string-length(@href) - string-length('/') +1) = '/']" ) | >
136- xml2 :: xml_attr(" href" ) | >
137- setdiff(c(" /media/com_vrp/" , " test/" , " CMT/" ))
134+ setdiff(
135+ xml2 :: xml_attr(
136+ xml2 :: xml_find_all(
137+ xml2 :: read_html(paste0(readLines(url(cvrplib_url )), collapse = " \n " )),
138+ " //a[substring(@href, string-length(@href) - string-length('/') +1) = '/']"
139+ ),
140+ " href"
141+ ),
142+ c(" /media/com_vrp/" , " test/" , " CMT/" )
143+ )
138144 # CMT has buggy .sol files
139145
140146 # iterate over all directories and collect file names
@@ -144,17 +150,21 @@ cvrplib_ls <- function() {
144150 unlist(
145151 lapply(
146152 rel_dirs ,
147- \ (rel_dir ) {
153+ function (rel_dir ) {
148154 paste0(
149155 rel_dir ,
150- xml2 :: read_html(
151- paste0(
152- readLines(url(paste0(cvrplib_url , rel_dir ))),
153- collapse = " \n "
154- )
155- ) | >
156- xml2 :: xml_find_all(" //a[substring(@href, string-length(@href) - string-length('.vrp') +1) = '.vrp']" ) | >
157- xml2 :: xml_attr(" href" )
156+ xml2 :: xml_attr(
157+ xml2 :: xml_find_all(
158+ xml2 :: read_html(
159+ paste0(
160+ readLines(url(paste0(cvrplib_url , rel_dir ))),
161+ collapse = " \n "
162+ )
163+ ),
164+ " //a[substring(@href, string-length(@href) - string-length('.vrp') +1) = '.vrp']"
165+ ),
166+ " href"
167+ )
158168 )
159169 }
160170 )
@@ -231,7 +241,7 @@ cvrplib_download <- function(qualifier) {
231241 demand_section <- grep(" DEMAND_SECTION" , content , fixed = TRUE )
232242 edge_content <- content [edge_weight_section : (demand_section - 1 )]
233243
234- lower_triang <- as.numeric(unlist(lapply(strsplit(edge_content , " \\ s+" ), \ (x ) x [x != " " ])))
244+ lower_triang <- as.numeric(unlist(lapply(strsplit(edge_content , " \\ s+" ), function (x ) x [x != " " ])))
235245 dmat <- matrix (0 , nrow = dimension , ncol = dimension )
236246 dmat [upper.tri(dmat , diag = TRUE )] <- lower_triang
237247 pos <- as.data.frame(cmdscale(dist(dmat + t(dmat ))))
@@ -241,7 +251,7 @@ cvrplib_download <- function(qualifier) {
241251 demand_section <- grep(" DEMAND_SECTION" , content , fixed = TRUE )
242252 edge_content <- content [edge_weight_section : (demand_section - 1 )]
243253
244- lower_triang <- as.numeric(unlist(lapply(strsplit(edge_content , " \\ s+" ), \ (x ) x [x != " " ])))
254+ lower_triang <- as.numeric(unlist(lapply(strsplit(edge_content , " \\ s+" ), function (x ) x [x != " " ])))
245255 dmat <- matrix (0 , nrow = dimension , ncol = dimension )
246256 dmat [upper.tri(dmat )] <- lower_triang
247257 pos <- as.data.frame(cmdscale(dist(dmat + t(dmat ))))
@@ -250,7 +260,7 @@ cvrplib_download <- function(qualifier) {
250260 } else if (edge_weight_format == " FULL_MATRIX" ) {
251261 edge_content <- content [edge_weight_section : (edge_weight_section + dimension - 1 )]
252262
253- dmat <- as.numeric(unlist(lapply(strsplit(edge_content , " \\ s+" ), \ (x ) x [x != " " ])))
263+ dmat <- as.numeric(unlist(lapply(strsplit(edge_content , " \\ s+" ), function (x ) x [x != " " ])))
254264 dim(dmat ) <- c(dimension , dimension )
255265
256266 pos <- as.data.frame(cmdscale(dist(dmat )))
0 commit comments