在knitr :: kable(df)中加粗一列

时间:2016-11-22 16:38:41

标签: r knitr

我的数据框如下所示:

---
title: "Untitled"
output: html_document
---
```{r}
employee <- c('John Doe','Peter Gynn','Jolie Hope')
salary <- c(21000, 23400, 26800)
startdate <- as.Date(c('2010-11-1','2008-3-25','2007-3-14'))

employ.data <- data.frame(employee, salary, startdate)

knitr::kable(employ.data)
```

有谁知道如何加粗工资栏?

最终将采用html格式。

enter image description here

谢谢!

1 个答案:

答案 0 :(得分:2)

您可以使用CSS执行此操作,如下所述:Using CSS how to change only the 2nd column of a table

您可以直接将CSS放入代码块之外的文本中,或者放在YAML标头中提到的单独文件中。例如,

<style>
table td:nth-child(2){
    font-weight: bold;
}
</style>

```{r}
employee <- c('John Doe','Peter Gynn','Jolie Hope')
salary <- c(21000, 23400, 26800)
startdate <- as.Date(c('2010-11-1','2008-3-25','2007-3-14'))

employ.data <- data.frame(employee, salary, startdate)

knitr::kable(employ.data)
```

这将改变文档中的每个表格;你可能想要一个更具体的选择器。

我不知道在R Markdown中使用kable()向特定表添加类的简单方法,但这个kludge会做到这一点。在CSS中,使用

<style>
table.salarytable td:nth-child(2){
    font-weight: bold;
}
</style>

将更改限制为类salarytable,然后在代码块中使用

knitr::kable(employ.data, "html", 
             table.attr = 'class="table table-condensed salarytable"'

告诉knitr输出HTML并为表格提供R Markdown表的常用类,以及您自己的salarytable类。