如何使用R formattable包更改表头行的外观

时间:2017-02-06 14:45:00

标签: r html-table formattable

我正在使用R中的formattable包来生成HTML表。我可以使用formatter自定义表格中的数据值外观,例如字体大小,颜色等但我无法弄清楚如何改变表头行的外观。我可以使用col.names()更改实际的列名,但无法更改其外观。

例如,在下表中,如何更改标题行中的文本颜色或背景颜色(mpg,cyl,disp等)

最终,我计划使用formattable :: as.htmlwidget()和库(webshot)来获取表格的图像文件,参见 Command for exporting/saving table made with Formattable package in R

由于

library(formattable)

formatRed <- formatter("span"
    , style = x ~ style(color = ifelse(x > 21 , "red", "black")))

formatSize <-  formatter("span"
    , style = x ~ style("font-size" = "8px"))

exTb <- formattable(head(mtcars, 5)
    , table.attr = "class='table table-striped'"
    , list(mpg = formatRed
        , wt = formatSize)
)

exTb

1 个答案:

答案 0 :(得分:2)

您可以使用样式表。您可以将样式表嵌入.Rmd文件中,也可以将样式表保存为.css文件,然后从.Rmd文件中引用它。如果您想了解有关在.Rmd文件中嵌入样式表的更多信息,请参阅此question。如果您想了解有关引用外部样式表的更多信息,请参阅Section 3.1.4.1。在我的示例中,我将样式表(<style>...</style>组件)嵌入到.Rmd文件中。我的样式表定义了更改表格标题的样式。 Times New Roman的字体和表格标题&#39;字体颜色为红色。

---
title: "Test"
output: html_document
---

```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE)
```

<style>
  thead {
     font-family: "Times New Roman";
     color: red;
  }
</style>

```{r, echo=FALSE}
library(formattable)
df <- data.frame(Change = c(1), My = c(2), Style = c(3))
ft <- formattable(df)
ft
```

通过扩展样式表,您可以影响HTML文件中的其他元素。