【问题标题】:Generate html code using lapply() with multiple arguments使用带有多个参数的 lapply() 生成 html 代码
【发布时间】:2020-11-06 17:32:05
【问题描述】:

我正在尝试使用lapply() 在循环中生成几个 html 段落。这些段落位于data.frame 中,data.frame 有更多列,其中包含段落的详细信息(类、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"))

目标是获得以下输出:

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

我该怎么做才能让classiddf 中的classid 列中的数据填充?

【问题讨论】:

    标签: r htmltools


    【解决方案1】:

    您可以按行使用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>
    

    【讨论】:

      猜你喜欢
      • 2019-09-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-12-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多