HTML(knitrおよびmarkdownパッケージを使用)、PDF(pandocおよびmiktexを使用))およびdocx(pandocを使用)に変換したときに適切に表示されるRMarkdownのテーブルを手動で簡単にフォーマットする方法?
RMarkdownで、私が最も頻繁に使用する3つの形式で見栄えの良いR関数の結果ではない小さなテーブルを作成できるようにしたいと考えています。これまでのところ、3つのフォーマットのうち2つで見栄えの良いフォーマットを見つけましたが、3/3は可能ですか?
1。これは、HTMLをニットした後は適切に見えますが、PDFまたはdocx
<table>
<tr>
<td>Eggs</td>
<td>Ham</td>
</tr>
<tr>
<td>Basil</td>
<td>Tomato</td>
</tr>
</table>
二。これはHTMLをニットした後は見栄えが良いですが、PDFまたはdocx
| Tables | Are | Cool |
| ------------- |:-------------:| -----:|
| col 3 is | right-aligned | $1600 |
| col 2 is | centered | $12 |
| zebra stripes | are neat | $1 |
三。これは、HTMLをニットした後は見栄えがよくありませんが、PDFおよびdocx(これまでの最良のオプション)
V1 Tweedledee Tweedledum
-------- -------------- ----------------
Age 14 14
Height 3'2" 3'2"
Politics Conservative Conservative
Religion "New Age" Syrian Orthodox
--------- -------------- ----------------
四。これは、HTMLを作成してPDFとdocx(勝者!).
```{r table1, echo=FALSE, message=FALSE, warnings=FALSE, results='asis'}
require(pander)
panderOptions('table.split.table', Inf)
set.caption("Data on cars")
pander(mtcars, style = 'rmarkdown')
```
これは私がPDFおよびdocxファイルを作成する方法です:
filen <- "table" # name of my RMarkdown file without suffix
knit(paste0(filen,".Rmd"))
# make PDF
system(paste0("pandoc -s ", paste0(filen,".md"), " -t latex -o ", paste0(filen,".pdf"), " --highlight-style=tango -S"))
# make docx
system(paste0("pandoc -s ", paste0(filen,".md"), " -o ", paste0(filen,".docx"), " --highlight-style=tango -S"))
Daroczigのコメント、特にpander
がpandocのパイプ構文に変換される手がかりに触発されて、pander
のドキュメントを詳しく調べて、cat
への参照を見つけました。いくつかの実験の後、私は勝者を見つけました:
```{r table2, echo=FALSE, message=FALSE, warnings=FALSE, results='asis'}
tabl <- " # simple table creation here
| Tables | Are | Cool |
|---------------|:-------------:|------:|
| col 3 is | right-aligned | $1600 |
| col 2 is | centered | $12 |
| zebra stripes | are neat | $1 |
"
cat(tabl) # output the table in a format good for HTML/PDF/docx conversion
```
これにより、HTMLで一様に見栄えの良いテーブル、PDFおよびテストでdocxが生成されます。今度は、他の質問にdaroczigを賛成して解決に導いてくれたことに感謝しています。
テーブルのキャプションが必要な場合...少し違う方法で行う必要があります。キャプションはPDFでのみ表示され、HTMLでは表示されないことに注意してください。
```{r table-simple, echo=FALSE, message=FALSE, warnings=FALSE, results='asis'}
require(pander)
panderOptions('table.split.table', Inf)
set.caption("My great data")
my.data <- " # replace the text below with your table data
Tables | Are | Cool
col 3 is | right-aligned | $1600
col 2 is | centered | $12
zebra stripes | are neat | $1"
df <- read.delim(textConnection(my.data),header=FALSE,sep="|",strip.white=TRUE,stringsAsFactors=FALSE)
names(df) <- unname(as.list(df[1,])) # put headers on
df <- df[-1,] # remove first row
row.names(df)<-NULL
pander(df, style = 'rmarkdown')
```