One possibility is to use xmlNode() from the XML package. Here we can also use it with lapply() in the .children argument to create child nodes in one call.
library(XML) xmlNode( "select multiple", attrs = c(id = "waypoints"), .children = lapply(seq_along(x[[1]]), function(i) { xmlNode("option", i, attrs = c(value = x[[1]][i])) }) ) # <select multiple id="waypoints"> # <option value="5720 JACKSONBURG RD,TRENTON,OH,45067">1</option> # <option value="1282 OAKMONT AVE,HAMILTON,OH,45013">2</option> # <option value="1001 CHASE AVE,HAMILTON,OH,45015">3</option> # <option value="2266 TWIN OAKS DR,LEBANON,OH,45036">4</option> # </select multiple>
Data:
x <- list(c("5720 JACKSONBURG RD,TRENTON,OH,45067", "1282 OAKMONT AVE,HAMILTON,OH,45013", "1001 CHASE AVE,HAMILTON,OH,45015", "2266 TWIN OAKS DR,LEBANON,OH,45036" ))
source share