使用带多个参数的 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)}))
如何才能让 class
和 id
填入 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>
我正在尝试使用 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)}))
如何才能让 class
和 id
填入 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>