是否可以左对齐表格标题?我对 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").
编辑:请参阅此处了解至少对我有用的临时解决方案。
我的数据框具有丑陋的列名,但在我的报告中显示表时,我想要他们的"真实"名称,包括特殊字符'(',新行,希腊字母,重复名称等.
是否有一种简单的方法来替换knitr中的名称以允许这种格式化?
我试图做的是禁止打印数据框名称,并使用add_header_above跨越多列的更好的名称和名称.我见过的一些建议说要使用:
x <- kable(df)
gsub("<thead>.*</thead>", "", x)
Run Code Online (Sandbox Code Playgroud)
删除列名称.这很好,但问题是,当我随后add_header_above,原来的列名回来了.如果我使用col.names=rep('',times=ncol(d.df))的kable(...)名称是走了,但该行仍然存在,离开我的新的列名和表体之间的间隙.这是一个代码块来说明:
```{r functions,echo=T}
drawTable <- function(d.df,caption='Given',hdr.above){
require(knitr)
require(kableExtra)
require(dplyr)
hdr.2 <- rep(c('Value','Rank'),times=ncol(d.df)/2)
x <- knitr::kable(d.df,format='latex',align='c',
col.names=rep('',times=ncol(d.df))) %>%
kable_styling(bootstrap_options=c('striped','hover',
'condensed','responsive'),position='center',
font_size = 9,full_width=F)
x %>% add_header_above(hdr.2) %>%
add_header_above(hdr.above)
}
```
```{r}
df <- data.frame(A=c(1,2),B=c(4,2),C=c(3,4),D=c(8,7))
hdr.above <- c('A2','B2','C2','D2')
drawTable(df,hdr.above = hdr.above)
```
Run Code Online (Sandbox Code Playgroud)
我正在尝试使电缆表具有反应性,并将其导出到闪亮的应用程序中。已经尝试在服务器内部使用renderDataTable/ renderTable,并且将输出功能作为datatableOutput/ 进行了尝试tableOutput,但是没有运气,下面是代码行。
output$tableset <- renderDataTable({
kable(spread_bole) %>%
kable_styling(font_size = 15 ,bootstrap_options = c("striped","hover", "condensed")) })
tableOutput("tableset")
Run Code Online (Sandbox Code Playgroud) 我正在使用 xaringan 创建一个 html 演示文稿,其中包括使用 kable() 生成的一些表格。不幸的是,这些表非常窄,所以我想在 kable_styling 中使用 full_width 选项。此外,我想关掉条纹设计。一个例子:
library(kableExtra)
head(iris) %>%
knitr::kable('html') %>%
kableExtra::kable_styling(full_width = TRUE, bootstrap_options = "basic")
Run Code Online (Sandbox Code Playgroud)
但是,xaringan 似乎忽略了 kable_styling() 选项。是否有可能实现这些目标,或者在使用 xaringan 时修改 kable 表的样式?
使用生成的垂直滚动条kableExtra在 RStudio 中有效,但在 knitted html_document 中不起作用。
获取以下Rmd文件
---
output: html_document
---
```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE, message = FALSE, warning = FALSE)
library(dplyr)
library(kableExtra)
```
```{r}
iris %>%
kable %>%
kable_styling("striped", full_width = F)
```
Run Code Online (Sandbox Code Playgroud)
在 RStudio 中运行块时,我看到一个垂直滚动条
但是编织后,垂直滚动条消失了,整个 data.frame 都被打印了
如何让垂直滚动条在 knitted HTML 中显示,就像在 RStudio 中一样?
我在 Rmarkdown 中使用 kable 创建了一个乳胶表,如下所示:
---
output: pdf_document
header-includes:
- \usepackage{xcolor}
---
```{r, message=FALSE, warning=FALSE, echo=FALSE}
library(kableExtra)
library(tidyr)
library(dplyr)
data(iris)
iris %>%
as_tibble %>%
gather(.,key = variable,value = value,-Species) %>%
group_by(Species,variable) %>%
summarise(value=mean(value)) %>%
ungroup %>%
spread(.,key = variable,value = value) %>%
mutate(`Percentage Change`=`Petal.Length`/`Petal.Width`*100) %>%
kable(.,format='latex',
align='c',linesep='',
booktabs=TRUE,escape=FALSE) %>%
add_header_above(.,c(' '=1,'Parts'=4,' '=1),
escape = FALSE) %>%
kable_styling(latex_options = c('striped','HOLD_position','scale_down'))
```
Run Code Online (Sandbox Code Playgroud)
我希望将列标题“物种”和“百分比变化”分别与它们上面的空白区域合并,这样就Species可以放在两个标题行的中间,同时Percentage Change (Petal Length/ Petal Width)可以占据两行,而不是有一个空的上面的行,并防止其他列下面有空行。
不知道是否可以kable更好地修改它,也欢迎乳胶“黑客”建议。
谢谢!
我正在使用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",但是当我这样做时,它会抱怨......有什么想法吗?
我正在尝试创建一个表,其中包含内置于表中的引文。这是我试图实现的目标的视觉效果。

据我所知,您只能在中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)