微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用带有多个参数的lapply生成html代码

如何解决使用带有多个参数的lapply生成html代码

我正在尝试使用lapply()循环生成多个html段落。这些段落位于data.frame中,并且data.frame包含更多列,其中包含有关这些段落的详细信息(类,标识等)。 我只用一个参数就能产生循环,问题是我想在lapply()循环中有多个参数。有谁知道该怎么做?

data.frame

df = data.frame(paragraph = c("paragraph1","paragraph2","paragraph3"),class= c("alert","good","alert"),id= c("id_1","id_2","id_3"))

目标是获得以下输出

<div>     
     <p class="alert" id="id_1">paragraph1</p> 
     <p class="good" id="id_2">paragraph2</p> 
     <p class="alert" id="id_3">paragraph3</p> 
</div>

lappy()循环(仅用于一个参数):

library(htmltools)
tags$div(lapply(df$paragraph,function(x){tags$p(class="",id="",x)}))

我该如何做,以使class的{​​{1}}和id列中的数据填充classid? >

解决方法

您可以按行使用apply,并按如下所示从数据框中指定类,id和内容。

library(htmltools)

tags$div(apply(df,1,function(x) {
  tags$p(class = x[["class"]],id = x[["id"]],x[["paragraph"]])
}))

输出

<div>
  <p class="alert" id="id_1">paragraph1</p>
  <p class="good" id="id_2">paragraph2</p>
  <p class="alert" id="id_3">paragraph3</p>
</div>

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。