Jos*_*erg 21 r knitr r-markdown bookdown kable
我knitr::kable()用来渲染表作为R Markdown文档的一部分(它本身是一个bookdown项目的一部分).特别是,booktabs选项(通过将booktabs参数设置为相等TRUE)以一种漂亮的方式呈现表格.但是,我希望每隔五行就不会有空格.
例如,这里是代码以及在作为PDF呈现时,bookdown演示中的表格如何显示:
knitr::kable(
head(iris, 20), caption = 'Here is a nice table!',
booktabs = TRUE
)
Run Code Online (Sandbox Code Playgroud)
我想要在每五行之后出现的空间不被包括在内,但我似乎找不到knitr::kable()这样做的设置.
Mic*_*per 38
之所以行的高度并不总是等于是,默认情况下,kable插入 \addlinespace每5行时booktabs指定为TRUE,如图所示在这里:
linesep = if (booktabs) c('', '', '', '', '\\addlinespace') else '\\hline'
Run Code Online (Sandbox Code Playgroud)
要改变这一点,请添加 linesep = ""为参数kable().
knitr::kable(
head(iris, 20), caption = 'Here is a nice table!',
booktabs = TRUE,
linesep = ""
)
Run Code Online (Sandbox Code Playgroud)
有关 更多详细信息,请参阅 在kable中删除\ addlinespace.
如果你想改变风格,你也可以使用这个选项.例如linesep = c("", "", "", "\\hline"),每四个空格添加一条水平线.
Bar*_*art 10
根据上面的例子,我对控制分离感兴趣。这与以下辅助函数配合得很好。这使得控制线分离的位置成为可能。
linesep<-function(x,y=character()){
if(!length(x))
return(y)
linesep(x[-length(x)], c(rep('',x[length(x)]-1),'\\addlinespace',y))
}
knitr::kable(
head(iris, 20), caption = 'Here is a nice table!',
booktabs = TRUE,
linesep = linesep(c(3,2,1,1,3,5,4,1))
)
Run Code Online (Sandbox Code Playgroud)