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

Generate html code using lapply() with multiple arguments

我正在尝试使用 lapply() 在循环中生成多个 html 段落。这些段落在 data.frame 中,data.frame 有更多包含段落详细信息的列(class、id 等)。 我能够只用一个参数生成循环,问题是我想要 lapply() 循环中的多个参数。有人知道怎么做吗?

data.frame:

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

objective 将具有以下输出:

<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)}))

如何才能让 classid 填入 class 列和 df 中的 id 列中的数据?

您可以使用 apply row-wise,并指定数据框中的 class、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>