7

Rstudio で Knitr を使用して、マークダウン ファイルを生成しています。xtable パッケージを介してテーブルを表示すると、html ファイルにうまく表示されます。ただし、pandocを介して.mdをlatexに変換すると、latexファイルには想定どおりのテーブルが含まれず、コマンドなしでテーブルの値のみが含まれます。

Markdown - Knitr 入力

わかりやすいように、次の表にデータ行のサンプルを示します。

```{r table, results='asis', echo=FALSE} 
r = read.table("C:/aR_files/data.txt",sep=",", header=TRUE,as.is=TRUE)
r$X = NULL;
print(xtable(r), type='html') 
```

ラテックス

In order to give a better idea, the following table provides a sample of
data rows:


Row1

Row2

Val1

Val1

latex パッケージが足りないのではないかと思ったので、ctable.sty をダウンロードしましたが、それでも同じ出力が得られます。任意のアイデアをいただければ幸いです。

4

1 に答える 1

6

私はあなたと非常によく似たワークフローを使用していますが、あなたの最善の策は、しばしば不格好なパッケージを放棄し、xtableパッケージを使用しpanderてテーブルを印刷することです. pander()ジェネリック関数でテーブルとして表示する可能性のあるオブジェクトをラップできます。pandoc.table()これは、いくつかのオプションを持つ関数のラッパーです。オプションを指定すると、style = "XXX"ここで求めていることを実現できます。4 つの異なるスタイルから選択できます。"multiline" (デフォルト)、"grid"、"simple"、または "rmarkdown"。私は頻繁に Rstudio 内から rmarkdown ドキュメントを編んでから、pander パッケージを使用してそれらを Word ドキュメントに変換します。

library(pander)
Pandoc.convert("C:/Users/BlahBlahBlah/Document.md", format="docx")

4 つのテーブル スタイルはすべて、.docx 形式に変換するとテーブル オブジェクトに変換されますが、.docx ドキュメントと最初の "knit" の結果である .html ファイルで適切に見えるテーブル スタイルは 1 つだけです。そのスタイルが「rmarkdown」です。この 2 つの方法を実装できます。1つは次のとおりです。

```{r table, results='asis'}
pandoc.table(myTable, style = "rmarkdown")
```

ただし、ドキュメントの冒頭で表のスタイルをグローバルに設定することを好みます。これにより、すべての表が同じ書式設定になるようpander(x)にし、より詳細なものではなく、より簡潔なものを使用できるようにしpandoc.table(x, style = "someStyle")ます。

```{r table, results='asis'}
panderOptions("table.style", "rmarkdown")
pander(myTable)
```

rmarkdownただし、スタイルの使用にはいくつかの副作用があります。主に、セル内の改行文字をサポートしていないため、購入者は注意してください。さまざまなスタイルを試してみた結果、生成する .html ファイルがばかげているように見えても、セル内の改行に柔軟性があるため、デフォルトのスタイルの「複数行」が気に入ったと最終的に判断しました。私は実際には .md ファイルから変換した .docx ファイルしか使用しないので、これは気になりません。役立つと思われる素敵なテーブルの作成に関するブログ記事を書きました。xtable()およびいくつかのpander()シナリオを含むいくつかの方法の長所と短所を比較検討します。

于 2013-06-25T15:36:07.763 に答える