是否可以左对齐表格标题?我对 APA6th 规则感到恼火,但我必须以某种方式左对齐表格标题。
以这张表为例:
library(knitr)
library(kableExtra)
kable(mtcars[1:10, 1:6], format = "latex", caption = "I need this left-aligned.", booktabs = T) %>%
kable_styling(position = "left") %>%
group_rows("Group 1", 4, 7) %>%
group_rows("Group 2", 8, 10)
Run Code Online (Sandbox Code Playgroud)
标题将始终在表格上方居中,即使我将表格位置与kable_styling(position = "left").
编辑:请参阅此处了解至少对我有用的临时解决方案。
我正在使用kable在RMarkdown中创建我的数据表.您可以使用column_spec命令调整列宽,但是这似乎只调整数据的列本身,但是也不调整标题行的列宽.所以现在我的标题不再与其关联的数据列对齐.
例如:
y <- knitr::kable(head(mtcars), "html")
column_spec(y, 1:4, width="5em")
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用 r markdown、kable 和 kableExtra 输出乳胶表。我在表格渲染代码中收到一个错误,该错误不是由 R 生成的乳胶代码的一部分。
编码:
outTab <- m.OutTab %>%
kable(format='latex', booktabs=T ,
#caption = "Population Trend",
digits=1,
row.names=FALSE,
align='lccccc',
col.names = names_spaced,
escape = FALSE)
Run Code Online (Sandbox Code Playgroud)
其中“m.OutTab”是一个包含要渲染的表格的矩阵,
错误:
Error producing PDF.
! Misplaced \noalign.
\addlinespace ->\noalign
{\ifnum 0=`}\fi \@ifnextchar [{\@addspace }{\@addsp...
l.116 \addlinespace
Error: pandoc document conversion failed with error 43
Run Code Online (Sandbox Code Playgroud)
这些代码(“\noalign ...”)不是“outTab”的一部分。
知道如何解决此错误吗?
我正在使用 RMarkdown 编写报告,并使用 kable 和 kableExtra 来格式化和打印表格。这是我想要的表格看起来像(在 Word 中制作的):
我正在努力对垂直居中进行排序("Number of Incident Occurences"顶部和底部之间的空间,以便文本在行的中间对齐,在列的左侧。
请注意,我正在创建 PDF 报告而不是 html。
这是一个最小的例子:
df <- data.frame(a = letters[1:5], b = 1:5)
names(df) <- c("A very very very very very very very very very very very very very very very very very very long title",
"A short title")
df %>% kable(format = 'latex', linesep = "", align = 'c', escape = F) %>% kable_styling(full_width = T)
Run Code Online (Sandbox Code Playgroud)
这是输出的样子:
垂直对齐似乎正在推向顶部。我遇到了“m”,但这只是中间对齐列。我想知道我是否需要为所有行指定一些特殊的东西是 row_spec() align = "m",但是当我这样做时,它会抱怨......有什么想法吗?
我创建了一些表格(使用knitr& kableExtra),在我使用output: html_document时效果很好,但是当我尝试使用output: word_document表格中每个单元格的内容呈现它们时,会打印到 Word 文档中的连续新行上。
是否有:
output: word_document?或者kableExtra::add_header_above和kableExtra::indent_row功能?output: word_document---
title: "A tale of two tables"
output: word_document
---
```{r global_options, R.options=knitr::opts_chunk$set(warning=FALSE, message=FALSE)}
```
```{r two-tables, results='asis', echo=FALSE}
library(tidyverse)
library(knitr)
library(kableExtra)
library(formattable)
a <- tribble(~location, ~'Month (persons)', ~'TTY (persons)', ~'TTY % change',
'new_south_wales',1604,40328,3.3,
'victoria',-2118,13415,3.5,
'queensland',214,10023,3.2,
'south_australia',1969,11787,5.0,
'western_australia',531,1316,1.6,
'tasmania',-887,2428,1.9,
'northern_territory',-44,570,2.4,
'australian_capital_territory',32,-434,-3.1,
'australia',78,1060,4.8)
b <- tribble(~series,~Dec,~Jan,~TTY,
'FT employed', 12700, 49800, 293200, …Run Code Online (Sandbox Code Playgroud) 我正在尝试在 rmarkdown 中创建一个表kable,kableExtra并且我想在add_header_above函数中放入希腊字母。
kable(a, format = "latex", booktabs = T, longtable = T) %>%
kable_styling() %>%
add_header_above(c("n", "$\\alpha$", "Estimates for $\\alpha$" = 4,
"Estimates for $\\beta$" = 4), align = "l", escape = F)
Run Code Online (Sandbox Code Playgroud)

我尝试使用escape = Flike here,但它似乎不适用于希腊字母。
我希望在我的 rmarkdown 文档中使用这种样式的表格,并在列标题中使用希腊字母。有没有办法做到这一点与kable和kableExtra,甚至用其他方法?
我的数据:
a <- structure(list(c("5", "", "", "", ""), c(0.1, 0.25, 0.5, 1, 2
), MLE = c(0.0839, 0.2082, 0.4194, 0.8237, 1.6201), MME = c(0.0839,
0.2082, 0.4194, …Run Code Online (Sandbox Code Playgroud) 我正在尝试创建一个表,其中包含内置于表中的引文。这是我试图实现的目标的视觉效果。

据我所知,您只能在中rowvars或colvars中添加脚注kableExtra(喜欢那个包)。
# Create a dataframe called df
Component <- c('N2','P3')
Latency <- c('150 to 200ms', '625 to 800ms')
Location <- c('FCz, Fz, Cz', 'Pz, Oz')
df <- data.frame(Component, Latency, Location)
Run Code Online (Sandbox Code Playgroud)
以下是我在阅读kableExtraGit 页面后的尝试
# Trying some code taken from the kableExtra guide
row.names(df) <- df$Component
df[1] <- NULL
dt_footnote <- df
names(dt_footnote)[1] <- paste0(names(dt_footnote)[2],
footnote_marker_symbol(1))
row.names(dt_footnote)[2] <- paste0(row.names(dt_footnote)[2],
footnote_marker_alphabet(1))
kable(dt_footnote, align = "c",
# Remember this escape = F
escape = F, …Run Code Online (Sandbox Code Playgroud) .Rmd文件的以下内容:
---
title: "Untitled"
output:
html_document: default
---
```{r cars}
mtcars$am <- sprintf("(%s)", as.character(mtcars$am))
knitr::kable(mtcars, format = "html")
```
Run Code Online (Sandbox Code Playgroud)
在渲染到html之后,将显示列<ol><li></li></ol>中的有序列表am,而不是括号中的数字(由生成的数字sprintf).
这是有意的吗?我如何解决这个问题并在括号中显示数字,因为它们在html输出中?
输出knitr::kable似乎很好,显示:
<td style="text-align:left;"> (1) </td>
细节:
format = "html"不能解决问题,因为在现实生活中,我想用css进行高级格式化,例如基于生成的表的类基于Michael Harper接受的答案的快速解决方案可能是这样的方法:
replacechars <- function(x) UseMethod("replacechars")
replacechars.default <- function(x) x
replacechars.character <- function(x) {
x <- gsub("(", "(", x, fixed = TRUE)
x <- gsub(")", ")", x, fixed = TRUE)
x
}
replacechars.factor …Run Code Online (Sandbox Code Playgroud) 下面是一个代码示例。我的问题是带有换行符的行的背景颜色被缩短。知道如何解决这个问题吗?我尝试限制列宽,这达到了目的,但存在其他不需要的副作用,例如对齐每个单元格顶部的所有单元格值,并且由于此最终表的宽度必须是动态的,我不想强制一定的列宽。感谢您的任何帮助。
---
title: "For Stackoverflow"
output:
pdf_document:
latex_engine: xelatex
header-includes:
- \usepackage{booktabs}
- \usepackage{longtable}
- \usepackage{array}
- \usepackage{multirow}
- \usepackage{wrapfig}
- \usepackage{float}
- \usepackage{colortbl}
- \usepackage{pdflscape}
- \usepackage{tabu}
- \usepackage{threeparttable}
- \usepackage{threeparttablex}
- \usepackage[normalem]{ulem}
- \usepackage{makecell}
- \usepackage{xcolor}
- \usepackage{fontspec}
---
```{r message=FALSE, warning=FALSE}
library(dplyr)
library(kableExtra)
data <- data.frame(c('1','2','3','4','5'),c('a','b','A long line with no break that makes the column long','Value that needs \n break'
, 'another value that needs \n break'))
names(data) <- c('Column 1', 'Column 2')
data <- data %>% …Run Code Online (Sandbox Code Playgroud) 我有一个 ggplot2 元素和一个 KableExtra 表。是否可以将它们与 patchwork、cowplot 或任何其他包组合成一个对象,并将其打印在 rmarkdown 文档中?如果没有解决方案,是否有任何其他带有 html 或 Latex 设计的表格包,我可以用它来解决这个问题?
是否可以使用自定义块(https://bookdown.org/yihui/rmarkdown-cookbook/custom-blocks.html)将这些元素连接在一起?我尝试过但没有成功。
将表格作为 custom_annotation 添加到 ggplot 对我来说不起作用,因为我想将许多表格和绘图添加到同一元素。
> dt_example <- data.table(index = c('type', 'model', 'manufacturer', 'time', 'revolutions', 'element', 'fluid'), object = c('B12', 'Schullo', 'GM', '5 h', '54 k', 'XX', 'water'))
> dt_example
index object
1: type B12
2: model Schullo
3: manufacturer GM
4: time 5 h
5: revolutions 54 k
6: element XX
7: fluid water
kable_table <- dt_example %>%
kable(col.names = c('',''), format = …Run Code Online (Sandbox Code Playgroud) kable ×10
r ×8
r-markdown ×8
kableextra ×7
knitr ×4
latex ×3
ggplot2 ×1
markdown ×1
ms-word ×1