[解決済み] HTML、PDF、DOCXで見栄えのするシンプルな手動のRMarkdownテーブル
質問
HTML(knitrとmarkdownパッケージ使用)、PDF(pandocとmiktex使用)、docx(pandoc使用)に変換する際に見栄えのするRMarkdownのテーブルを手動で簡単にフォーマットするにはどうすればよいでしょうか?
RMarkdownで、R関数の結果ではない小さな表を、私がよく使う3つのフォーマットで見栄えよく書けるようにしたいです。今のところ、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>
2つ これはニットHTMLの後では良い感じですが、PDFやdocxではイマイチです
| Tables | Are | Cool |
| ------------- |:-------------:| -----:|
| col 3 is | right-aligned | $1600 |
| col 2 is | centered | $12 |
| zebra stripes | are neat | $1 |
3つ これはニットHTMLの後では見栄えが悪いが、PDFやdocxでは良い(今のところベストな選択肢です)
V1 Tweedledee Tweedledum
-------- -------------- ----------------
Age 14 14
Height 3'2" 3'2"
Politics Conservative Conservative
Religion "New Age" Syrian Orthodox
--------- -------------- ----------------
4つです。これは、ニット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をupvoteして、解決に導いてくれた彼に感謝することにします。
テーブルにキャプションが必要な場合... の場合は、少し違った方法で行う必要があります。キャプションは、HTMLではなく、PDFでのみ表示されることに注意してください。
```{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')
```
関連
-
RStudio の "plot.new() : figure margins too large" 問題を解決する。
-
R: 環境と変数のスコープ問題
-
[解決策】 plot.new() のエラー:図の余白が大きすぎる。
-
[解決済み] Rの%*%の意味 [重複]について
-
[解決済み] Rで複数行のコメントを持つことは可能ですか?[重複している]。
-
[解決済み] R:自然対数を使った方程式をnlsで使う
-
[解決済み] R dataframeでNAの値をゼロに置き換えるには?
-
[解決済み] ベクトル中のxの値を持つ要素の個数を数える
-
[解決済み] 統計的最頻値の求め方は?
-
[解決済み] ggplot2 で個々のファセットにテキストをアノテートする
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン