我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
函数控制列的对齐,即我做错了什么?kable
knitr
编辑
运行:
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 输出以及kable
pdf 和 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