我有一个R列表
list[[1]]
[1] 5720 JACKSONBURG RD,TRENTON,OH,45067
[2] 1282 OAKMONT AVE,HAMILTON,OH,45013
[3] 1001 CHASE AVE,HAMILTON,OH,45015
[4] 2266 TWIN OAKS DR,LEBANON,OH,45036
我用HTML在javascript中创建了谷歌地图。 我使用上面的地址作为输入(手动)获取HTML中的值:
<select multiple id="waypoints">
<option value="5720 JACKSONBURG RD,TRENTON,OH">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>
有没有办法生成
<option value="XXXXX">
基于我的R数据?像一个循环?
我正在关注https://developers.google.com/maps/documentation/javascript/examples/directions-waypoints
答案 0 :(得分:3)
一种可能性是使用 XML 包中的xmlNode()
。在这里,我们也可以在lapply()
参数中使用.children
来生成同一个调用中的子节点。
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>
数据:强>
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"
))
答案 1 :(得分:2)
如果您只想构建HTML,可以使用paste()来实现。使用样本数据(看起来像包含向量的列表)
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"))
你可以做到
paste0("<option value=\"", x[[1]], "\">",seq_along(x[[1]]),"</option>", collapse="")