Avi*_*ash 9 markdown r knitr r-markdown
有没有办法在rmarkdown中格式化表格中的单个单元格?我正在使用kable生成一个表,如下所示:
library(knitr)
kable(data.frame(c('a','b','c'),c(1,2,3)))
Run Code Online (Sandbox Code Playgroud)
我希望在最后一行加粗"c",并在表格的末尾添加一条水平线.有什么指针吗?
小智 10
这也有效:第一个参数是行号,因此您可以通过编程方式将行加粗,或使用 column_spec 将列加粗。
library(kableExtra)
library(tidyverse)
kable(data.frame(letter =c('a','b','c'),number =c(1,2,3)))%>%
kable_styling()%>%
row_spec(3,bold=T,hline_after = T)
Run Code Online (Sandbox Code Playgroud)
只是将问题概括为包括其他字体。Pandoc 提供了其他方法来轻松重新格式化文本,如RMarkdown Cheatsheet 中所述:
*italics***bold**~~strikethrough~~此输出将支持各种输出方法,包括PDF、html和word:
这是一个基本示例:
---
output: pdf_document: default
---
```{r}
knitr::kable(data.frame(char = c('*a*','**b**','~~c~~'),
num = c(1,2,3)))
```
Run Code Online (Sandbox Code Playgroud)
为了更轻松地选择要重新格式化的单元格,我将以下功能放在一起format_cells。
format_cells <- function(df, rows ,cols, value = c("italics", "bold", "strikethrough")){
# select the correct markup
# one * for italics, two ** for bold
map <- setNames(c("*", "**", "~~"), c("italics", "bold", "strikethrough"))
markup <- map[value]
for (r in rows){
for(c in cols){
# Make sure values are not factors
df[[c]] <- as.character( df[[c]])
# Update formatting
df[r, c] <- paste0(markup, df[r, c], markup)
}
}
return(df)
}
Run Code Online (Sandbox Code Playgroud)
它允许用户选择需要重新格式化的单元格行和列,并选择要应用的样式。如果需要重新格式化行/列中的多个值,则可以同时选择多个单元格。下面是一个例子:
library(tidyverse)
df <- data.frame(char = c('a','b','c'),
num = c(1,2,3))
df %>%
format_cells(1, 1, "italics") %>%
format_cells(2, 2, "bold") %>%
format_cells(3, 1:2, "strikethrough") %>%
knitr::kable()
Run Code Online (Sandbox Code Playgroud)
进一步阅读:
kableExtra编写该包以提供许多额外的表格样式控制。但是,对于不同类型的输出,建议是不同的,因此HTML和LaTeX有不同的方法
突出显示单元格、行或列pander非常简单:
> df <- data.frame(c('a','b','c'),c(1,2,3))
> emphasize.strong.cells(which(df == 3, arr.ind = TRUE))
> pander(df)
-------------------------------
c..a....b....c.. c.1..2..3.
------------------ ------------
a 1
b 2
c **3**
-------------------------------
Run Code Online (Sandbox Code Playgroud)
但在表格中添加水平线超出了Markdown 表格规范的范围。
| 归档时间: |
|
| 查看次数: |
6640 次 |
| 最近记录: |