以下は、ヘッダ内の改行とテーブルを生成する。
```{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
でセルの幅を設定することができます。改行は自動的に生成されますが、改行は列ヘッダーにスペースがある場合にのみ表示されます。例:
```{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
が必要です。
ヒントをありがとう!私はパンドックテーブルの "スタイル"を変えると、実際に私がしたいことをやることに気付きました!私はstyle = 'rmarkdown'を使っていました。しかし、style = 'multiline'はそれを処理します! – Killian
しかし 'style =" multiline "'がデフォルトですので、 'style'を指定しなければ、これが使われます。 'style =" rmarkdown "はセルの改行をサポートしていないと思われますが、' style = "multiline" 'を設定すると空白がないところで改行が追加されません。それはスペースで壊れ、 'split.cells = 30'をデフォルトで使用します。 – Stibu
この回答は私には役に立たなかった。 'keep.line.breaks'という引数を使って' \ n'を尊重する必要がありました。 – jsta