.Rmdファイルでknitrを使用した図のキャプションのような表のキャプションを使用できるかどうか疑問に思っていますか?
図のキャプションのオプションは表示されましたが、表のキャプションのオプションは表示されませんでした。 "% latex table generated in R 2.15.2 by xtable 1.7-0 package % Wed Mar 06 15:02:11 2013"
などのメッセージも削除したいと思います。
Xテーブルを使用してテーブルを作成しました。使用したサンプルコードは次のとおりです。
```{r table2, results='asis', message=FALSE}
library(xtable)
print(xtable(head(iris)))
```
Pandocで処理した後に取得したテーブルは次のとおりです。
上記のメッセージを取り除くために、Rmdファイルでmessage = FALSEを使用しようとしました。 Rmdでテーブルのキャプションを自動的に追加できるかどうかも知りたいですか?
キャプションとは、以下のようなものを意味し(これは図用です)、図番号は自動的に更新されます。
この出力は、knitrによって作成されたマークダウンファイルを使用してpdfによって生成されたpdfからのスナップショットです。
ありがとうございました。
LaTeX/HTMLのみのソリューションを他の点では素晴らしいxtable
パッケージで使用することを主張しない場合は、Pandocのマークダウンで同じことを達成できる可能性があります。 1つのオプションは、テーブルの下に 手動でキャプション を追加するか、私の R Pandocライターパッケージ を使用することです。
> library(pander) # load pkg
> panderOptions('table.split.table', Inf) # not to split table
> set.caption('Hello Fisher!') # add caption
> pander(head(iris)) # show (almost) any R object in markdown
-------------------------------------------------------------------
Sepal.Length Sepal.Width Petal.Length Petal.Width Species
-------------- ------------- -------------- ------------- ---------
5.1 3.5 1.4 0.2 setosa
4.9 3.0 1.4 0.2 setosa
4.7 3.2 1.3 0.2 setosa
4.6 3.1 1.5 0.2 setosa
5.0 3.6 1.4 0.2 setosa
5.4 3.9 1.7 0.4 setosa
-------------------------------------------------------------------
Table: Hello Fisher!
次に、Pandocを使用して、このマークダウンファイルをHTML、LaTeX、docx、odt、またはその他の一般的なドキュメント形式に変換します。
ストレートニットコードを使用してpandocで処理するために、マークダウンに自動的に番号が付けられたキャプションを持つテーブルを挿入できます。 .rmdファイルの先頭に次のコードスニペットを挿入します。
_```{r setup, echo=FALSE}
tn = local({
i = 0
function(x) {
i <<- i + 1
paste('\n\n:Table ', i, ': ', x, sep = '')
# The : before Table tells pandoc to wrap your caption in <caption></caption>
}
})
knit_hooks$set(tab.cap = function(before, options, envir) {
if(!before)
tn(options$tab.cap)
})
default_output_hook = knit_hooks$get("output")
knit_hooks$set(output = function(x, options) {
if (is.null(options$tab.cap) == F)
x
else
default_output_hook(x,options)
})
```
_
番号付きの表のキャプションを挿入するには:
_```{r myirischunk, tab.cap="This is the head of the Iris table"}
kable(head(iris))
```
_
出力フックをオーバーライドしてtab.capを使用することにより、チャンクオプションをresults = 'asis'で乱雑にする必要はありません。
Knitrに感謝します!
PS:ラテックス/ pdfに変換したい場合は、おそらくラテックスにテーブルに番号を付けてもらいたいでしょう。その場合、tn(options$tab.cap)
をpaste('\n\n:', options$tab.cap, sep='')
に変更できますが、これはテストしていません。
これはxtable
で実現できます。 caption
をxtable
に追加し、comment=FALSE
をprint
関数に追加します。
print(
xtable(
head(iris),
caption = 'Iris data'
),
comment = FALSE,
type = 'latex'
)
xtable および print.xtable のドキュメントを参照してください。