我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()这样做的设置.
如何创建一个简短的标题kable?
library(dplyr)
library(knitr)
library(kableExtra)
df <- data.frame( X = sample(letters, 10), y = runif(10), z = sample(10:20, 10))
kable(df,
booktabs = TRUE,
caption = "This caption is way too long and doesnt look good when formatted in the Table of Contents. What you really need here is a much shorter caption so that your eyes dont go crazy trying to figure out what information the author is trying to convey. Often there is too much information in the …Run Code Online (Sandbox Code Playgroud) 我执行一个简单的任务:创建一个表,并使用其输出R Markdown到pdf如下:
library(knitr)
kable(datatable,align='ccccccc',
col.names = c("Copy","Sigma Est","Sigma Lower","Sigma Upper",
"Lambda Est","Lambda Lower","Lambda Upper"),digits=3)
Run Code Online (Sandbox Code Playgroud)
问题
当我输出表格时,列不居中.实际上,对于某些表格,它们与其他表格正确对齐 - 左对齐,这对我来说似乎相当随机.
题
如何通过包中的R函数控制列的对齐,即我做错了什么?kableknitr
编辑
运行:
library(knitr)
kable(datatable,align=c(rep('c',times=7)),
col.names = c("Copy","Sigma Est","Sigma Lower","Sigma Upper",
"Lambda Est","Lambda Lower","Lambda Upper"),digits=3)
Run Code Online (Sandbox Code Playgroud)
产量:
| Copy | Sigma Est | Sigma Lower | Sigma Upper | Lambda Est | Lambda Lower | Lambda Upper |
|:----:|:---------:|:-----------:|:-----------:|:----------:|:------------:|:------------:|
| 0 | 14.631 | 12.275 | 16.987 | 0.129 | 8.778 | 9.296 | …Run Code Online (Sandbox Code Playgroud) 我有以下问题,一旦将 Rstudio 中的 Rmarkdown 编织为 PDF,我的表格就不会出现在它们在 Rmarkdown 文件中的位置,而是出现在页面的顶部。我尝试添加:
header-includes:
- \usepackage{float}
Run Code Online (Sandbox Code Playgroud)
和
```{r setup, include=FALSE}
knitr::opts_chunk$set(... fig.pos = "H")
```
Run Code Online (Sandbox Code Playgroud)
但它没有用。R 和 Rstudio 在 Linux 上运行,LaTeX 引擎是“pdflatex”
完全可重现的示例:
---
title: "Untitled"
output: pdf_document
header-includes:
- \usepackage{float}
---
```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = FALSE, message=FALSE, warning = FALSE, fig.align = "center", dev = "cairo_pdf", fig.pos = "H")
```
```{r}
library(kableExtra)
library(tidyverse)
```
## R Markdown
This is an R Markdown document. Markdown is a simple formatting syntax for authoring HTML, PDF, …Run Code Online (Sandbox Code Playgroud) 如何使用kable函数格式化pdf中的表格?因为我的输出表宽度超过了pdf的宽度.这是一个例子:
---
output: pdf_document
---
```{r}
df <- cbind(mtcars[1:5,], mtcars[1:5,])
knitr::kable(df)
```
Run Code Online (Sandbox Code Playgroud)
我对R Markdown有些新意,所以如果这很愚蠢,请道歉.我正在准备一个使用R Markdown/Knitr的pdf报告,并遇到一个问题,如果我尝试使用kable包含一个样式表,它会将表移动到页面底部.
以下是代码示例:
---
title: "Testing"
output:
pdf_document:
fig_caption: yes
tables: true
---
```{r setup, include=FALSE}
library(knitr)
library(kableExtra)
```
Section 1: In Table \ref{fig:table1} below...
```{r table1, echo=FALSE}
kable(head(mtcars[,1:4],4), format = "latex", align = "c", caption ="\\label{fig:table1}Table Caption") %>%
column_spec(1, bold = T, width = "6em") %>%
kable_styling(position = "center")
```
Section 2: Lorem ipsum dolor sit amet
Run Code Online (Sandbox Code Playgroud)
这个输出的PDF有"第1部分"和"第2部分"相互跟随,表格位于页面的最底部. 
我已经尝试删除标题,并在块的开头使用fig.cap.虽然我的表保持在应有的位置,但它根本不会生成标题,并且对该图的引用变为?? .
什么有效:摆脱kableExtra,将格式从latex更改为pandoc.该表保留在应有的位置,并且我得到了标题,但是表格丢失了我真正想要的报告格式.
我究竟做错了什么?谢谢你的帮助!
编辑:对不起!我希望桌子显示我放在哪里(在"第1节"之后,在"第2节"之前).如下所示,仅带有标题/图形标签.(链接的图像是我得到的,如果我摆脱上面的代码块中的标题arg)

我使用以下模板
---
title: "Nice try buddy"
author: "SpaceMan"
date: "13 December 2057"
output:
bookdown::pdf_document2
header-includes:
- \usepackage{booktabs}
- \usepackage{longtable}
- \usepackage{array}
- \usepackage{multirow}
- \usepackage[table]{xcolor}
- \usepackage{wrapfig}
- \usepackage{float}
- \usepackage{colortbl}
- \usepackage{pdflscape}
- \usepackage{tabu}
- \usepackage{threeparttable}
- \usepackage{threeparttablex}
- \usepackage[normalem]{ulem}
- \usepackage{makecell}
---
---
references:
- id: fenner2012a
title: One-click science marketing
container-title: Nature Materials
volume: 11
---
```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE)
```
## Title
\begin{equation}
f\left(k\right)=\binom{n}{k}p^k\left(1-p\right)^{n-k} \label{eq:binom}
\end{equation}
You may refer to it using `\@ref(eq:binom)`, e.g., …Run Code Online (Sandbox Code Playgroud) 如何使用 将单元格包装在knitr::kable表格单元格中\n?
我想生成一个 .rmd 文件,其中包含一些表格,其中一列需要文本换行。应进行环绕的位置标有\n。我试过(这是一个独立的 .rmd 文件):
---
output: pdf_document
---
## A Table with text wrap
```{r cars}
knitr::kable(data.frame(col1 = c("a", "b"), col2 = c("one\ntwo", "three\nfour")))
```
Run Code Online (Sandbox Code Playgroud)
..但这不起作用。而不是留在col2,被包裹的部分生活在下一行col1。
预期输出为:
col1 | col2
-------------
a | one
| two
b | three
| four
Run Code Online (Sandbox Code Playgroud)
使用其他软件包的解决方案knitr是受欢迎的,只要它们允许打印(几乎)一样好。
我需要能够减少或简化此表中的数字。我只希望显示最多 4 个小数位,如果可能的话,如果数字是整数,则只显示整数。我将如何做到这一点?
library(kableExtra)
x = c(1, 1, 1, 1, 1, 1, 1, 1, 1)
y = x/2
z = x/3
a = data.frame(x, y, z)
b = t(a)
c = kable(b, "html", align = "c") %>%
kable_styling(full_width = F)
Run Code Online (Sandbox Code Playgroud) 如何使表格交叉引用在具有所有输出格式 pdf、docx 和 html 的 bookdown 文档中起作用?或者更具体地说,我怎样才能获得表格交叉引用flextables?
下面是一个最小的工作示例。第二个表,使用kable(),让我几乎一直到那里。问题是 docx 输出中的表格渲染完全无法使用(不是在这个 MWE 中,而是在我的实际用例中)。我考虑有条件地创建表格,flextable用于 docx 输出以及kablepdf 和 html 输出。flextable在 docx 输出中看起来不错。但是表引用不起作用!
---
title: "A Book"
author: "Frida Gomam"
site: bookdown::bookdown_site
documentclass: book
output:
bookdown::word_document2: default
bookdown::pdf_book: default
bookdown::gitbook: default
---
# Hello World
```{r setup, include=FALSE}
library(dplyr)
library(flextable)
```
<!--- this tabulates in docx and html output --->
```{r, test01, echo = FALSE, eval = !knitr::is_latex_output()}
mtcars %>%
head() %>%
flextable() %>% …Run Code Online (Sandbox Code Playgroud) kable ×10
r ×9
r-markdown ×8
knitr ×5
bookdown ×3
kableextra ×2
flextable ×1
ms-word ×1
pdf ×1