【问题标题】:How to Insert html in table of KableExtra如何在 KableExtra 的表中插入 html
【发布时间】:2019-01-29 16:50:55
【问题描述】:

是否可以在 kable 代码中添加 div html 代码: 可重现的例子:

kable(head(iris))

创建这样的输出:

` <table>
  <thead>
  <tr>
   <th style="text-align:right;"> Sepal.Length </th>
   <th style="text-align:right;"> Sepal.Width </th>
   <th style="text-align:right;"> Petal.Length </th>
   <th style="text-align:right;"> Petal.Width </th>
   <th style="text-align:left;"> Species </th>
  </tr>
 </thead>
 <tbody>
  <tr>
   <td style="text-align:right;"> 5.1 </td>
   <td style="text-align:right;"> 3.5 </td>
   <td style="text-align:right;"> 1.4 </td>
   <td style="text-align:right;"> 0.2 </td>
   <td style="text-align:left;"> setosa </td>
  </tr>
  <tr>
   <td style="text-align:right;"> 4.9 </td>
   <td style="text-align:right;"> 3.0 </td>
   <td style="text-align:right;"> 1.4 </td>
   <td style="text-align:right;"> 0.2 </td>
   <td style="text-align:left;"> setosa </td>
  </tr>
  </tbody>
  </table>`

我想在最后一列的最后一行添加&lt;div class = "alter_table"&gt;

  `<div class = "alter_table"> <td style="text-align:left;"> setosa </td></div>
  <div class = "alter_table"> <td style="text-align:left;"> setosa </td></div>`

我想使用 R 自动创建!

【问题讨论】:

    标签: r kableextra


    【解决方案1】:

    使用 HTML 表格总是很容易,只要您知道如何使用 xml2,您就可以做任何事情。 :)

    library(kableExtra)
    library(xml2)
    
    k_xml <- kable(iris[1:2,]) %>%
      kable_as_xml()
    
    k_xml %>%
      xml_child(2) %>%  # Go to <tbody> tag
      xml_child(2) %>%  # 2nd row of <tbody>
      xml_child(5) %>%  # 5th <td>
      xml_set_attr("class", "alter_table") # Add an attribute 
    
    xml_as_kable(k_xml)
    

    有关详细信息,请参阅我的 rstudio::conf 研讨会幻灯片:https://arm.rbind.io/slides/extend.html#1


    更新:如果你想要第二列,你需要一些 XPATH。使用上面的例子:

    library(kableExtra)
    library(xml2)
    
    k_xml <- kable(iris[1:2,]) %>%
      kable_as_xml()
    
    k_xml %>%
      xml_child(2) %>%  # Go to <tbody> tag
      xml_find_all("//tr/td[2]") %>%  # Find all 2nd td of tr rows
      xml_set_attr("class", "alter_table") # Add an attribute 
    
    xml_as_kable(k_xml)
    

    【讨论】:

    • 如果我只想要第二列,代码是什么?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-10-14
    • 2019-06-07
    • 2019-10-16
    • 2022-09-28
    • 2011-11-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多