在 r markdown 中包装 pandoc table 列名
Wrapping pandoc table column names in r markdown
我正在创建一个带有长列名的 pandoc.table,我想将其换行,这样我的 table 就不会离开 pdf 页面。我知道您可以使用 split.tables,但这会降低 table 的清晰度。使用 split.cells 似乎没有任何作用,即使作为向量提供也是如此。
---
output : pdf_document
---
```{r,echo=FALSE, results="asis"}
library(pander)
mytab = data.frame(ReallySuperExtraLongColumnNameThatIWantToWrap=1:2, col2=2001:2002)
pandoc.table(mytab)
```
以下将产生一个 table,在 header 中有一个换行符:
```{r,echo=FALSE, results="asis"}
library(pander)
mytab = data.frame("ReallySuperExtraLongColumn\nNameThatIWantToWrap"=1:2,
col2=2001:2002,
check.names = FALSE)
pandoc.table(mytab)
```
换行符用\n
编码。这不是列名中允许的字符,data.frame()
函数通常会删除它。您可以使用 check.names = FALSE
来抑制此行为并使列名与您输入的完全相同。或者,您可以在单独的行中重新定义列名称:
mytab = data.frame(ReallySuperExtraLongColumnNameThatIWantToWrap=1:2, col2=2001:2002)
names(mytab)[1] = "ReallySuperExtraLongColumn\nNameThatIWantToWrap"
您还可以使用 split.cells
设置单元格的宽度。然后将自动生成换行符,但是,仅当您的列 header 中有 space 时才会出现换行符。一个例子:
```{r,echo=FALSE, results="asis"}
library(pander)
mytab = data.frame("Really Super Extra Long Column Name That I Want To Wrap"=1:2,
col2=2001:2002,
check.names = FALSE)
pandoc.table(mytab, split.cells = 15)
```
这会在 "Extra" 和 "Name" 之后中断。请注意,您仍然需要 check.names = FALSE
,因为数据框名称中也不允许使用 space。
我正在创建一个带有长列名的 pandoc.table,我想将其换行,这样我的 table 就不会离开 pdf 页面。我知道您可以使用 split.tables,但这会降低 table 的清晰度。使用 split.cells 似乎没有任何作用,即使作为向量提供也是如此。
---
output : pdf_document
---
```{r,echo=FALSE, results="asis"}
library(pander)
mytab = data.frame(ReallySuperExtraLongColumnNameThatIWantToWrap=1:2, col2=2001:2002)
pandoc.table(mytab)
```
以下将产生一个 table,在 header 中有一个换行符:
```{r,echo=FALSE, results="asis"}
library(pander)
mytab = data.frame("ReallySuperExtraLongColumn\nNameThatIWantToWrap"=1:2,
col2=2001:2002,
check.names = FALSE)
pandoc.table(mytab)
```
换行符用\n
编码。这不是列名中允许的字符,data.frame()
函数通常会删除它。您可以使用 check.names = FALSE
来抑制此行为并使列名与您输入的完全相同。或者,您可以在单独的行中重新定义列名称:
mytab = data.frame(ReallySuperExtraLongColumnNameThatIWantToWrap=1:2, col2=2001:2002)
names(mytab)[1] = "ReallySuperExtraLongColumn\nNameThatIWantToWrap"
您还可以使用 split.cells
设置单元格的宽度。然后将自动生成换行符,但是,仅当您的列 header 中有 space 时才会出现换行符。一个例子:
```{r,echo=FALSE, results="asis"}
library(pander)
mytab = data.frame("Really Super Extra Long Column Name That I Want To Wrap"=1:2,
col2=2001:2002,
check.names = FALSE)
pandoc.table(mytab, split.cells = 15)
```
这会在 "Extra" 和 "Name" 之后中断。请注意,您仍然需要 check.names = FALSE
,因为数据框名称中也不允许使用 space。