将R数据作为输入传递给html?

时间:2015-12-18 04:02:15

标签: html r google-maps-api-3

我有一个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

2 个答案:

答案 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="")