问题描述
我正在尝试使用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
列中的数据填充class
和id
? >
解决方法
您可以按行使用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>