Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在r标记中包装pandoc表列名_R_Markdown_R Markdown_Pandoc - Fatal编程技术网

在r标记中包装pandoc表列名

在r标记中包装pandoc表列名,r,markdown,r-markdown,pandoc,R,Markdown,R Markdown,Pandoc,我正在创建一个具有长列名的pandoc.table,我想对其进行包装,这样我的表就不会离开pdf页面。我知道你可以使用split.tables,但这会影响表格的清晰度。即使作为向量提供,使用split.cells似乎也没有任何作用 --- output : pdf_document --- ```{r,echo=FALSE, results="asis"} library(pander) mytab = data.frame(ReallySuperExtraLongColumnNameTh

我正在创建一个具有长列名的pandoc.table,我想对其进行包装,这样我的表就不会离开pdf页面。我知道你可以使用split.tables,但这会影响表格的清晰度。即使作为向量提供,使用split.cells似乎也没有任何作用

---
  output : pdf_document
---

```{r,echo=FALSE, results="asis"}
library(pander)
mytab = data.frame(ReallySuperExtraLongColumnNameThatIWantToWrap=1:2, col2=2001:2002)
pandoc.table(mytab)
``` 

以下内容将生成标题中带有换行符的表格:

```{r,echo=FALSE, results="asis"}
library(pander)
mytab = data.frame("ReallySuperExtraLongColumn\nNameThatIWantToWrap"=1:2,
                  col2=2001:2002,
                  check.names = FALSE)
pandoc.table(mytab)
``` 
换行符用
\n
编码。这是columnname中不允许使用的字符,
data.frame()
函数通常会删除它。您可以使用
check.names=FALSE
抑制此行为,并保持列名与您输入的列名完全一致。或者,您可以在单独的行上重新定义列名:

mytab = data.frame(ReallySuperExtraLongColumnNameThatIWantToWrap=1:2, col2=2001:2002)
names(mytab)[1] = "ReallySuperExtraLongColumn\nNameThatIWantToWrap"
您还可以使用
split.cells
设置单元格的宽度。然后将自动生成换行符,但是,只有在列标题中有空格时才会出现换行符。例如:

```{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)
``` 

这将在“额外”和“名称”之后提供中断。请注意,您仍然需要检查
check.names=FALSE
,因为数据帧名称中也不允许使用空格。

谢谢您的提示!我意识到更改pandoc表的“样式”实际上也会实现我想要的!我使用的是style='rmarkdown';但是,style='multiline'会处理它!但是默认设置为
style=“multiline”
,因此如果未指定
style
,则将使用此选项。确实,
style=“rmarkdown”
似乎不支持单元格中的换行符,但是设置
style=“multiline”
allone不会在没有空格的地方添加换行符。默认情况下,它将在空格处中断并使用
split.cells=30
。这个答案对我不适用。我需要使用参数
keep.line.breaks
来尊重
\n