6

HTML ヘッダーに配置されているスタイルを使用する必要のない方法で、フォーマットされた HTML テーブルを生成する方法を考えたいと思います。私はすでにこの質問について広く尋ねましたが、ヘッダーの使用について言及した回答と、pandoc の使用に関する別の回答を受け取りました (更新: この質問の後に投稿された新しい回答については、この投稿の下部を参照してください。書式設定された HTML テーブルに必要なすべての HTML 書式設定を 1 か所に書き込む R 関数。

私は最近遊んでいてgvisTable、関連するすべての情報を1か所に書き込むことができます:

次のコード

```{r results='asis'}
simpleData <- data.frame(matrix(1:9, nrow=3))
tab2 <- gvisTable(simpleData, 
                   options=list(width = 600, height = 300))
print(tab2, "chart")
```

以下を R Markdown ドキュメントに出力します。

<!-- jsHeader -->
<script type="text/javascript" src="http://www.google.com/jsapi">
</script>
<script type="text/javascript">

// jsData 
function gvisDataTableID273f3d05cccd ()
{
  var data = new google.visualization.DataTable();
  var datajson =
[
 [
 1,
4,
7 
],
[
 2,
5,
8 
],
[
 3,
6,
9 
] 
];
data.addColumn('number','X1');
data.addColumn('number','X2');
data.addColumn('number','X3');
data.addRows(datajson);
return(data);
}

// jsDrawChart
function drawChartTableID273f3d05cccd() {
  var data = gvisDataTableID273f3d05cccd();
  var options = {};
options["allowHtml"] = true;
options["width"] =    600;
options["height"] =    300;

     var chart = new google.visualization.Table(
       document.getElementById('TableID273f3d05cccd')
     );
     chart.draw(data,options);


}


// jsDisplayChart 
function displayChartTableID273f3d05cccd()
{
  google.load("visualization", "1", { packages:["table"] }); 
  google.setOnLoadCallback(drawChartTableID273f3d05cccd);
}

// jsChart 
displayChartTableID273f3d05cccd()

<!-- jsFooter -->  
//-->
</script>

<!-- divChart -->

<div id="TableID273f3d05cccd"
  style="width: 600px; height: 300px;">
</div>

これがコンテキストに配置されると、gvisTable が生成されます。この出力の 2 番目の表を参照してください。

このように、単純な R 関数は、かなり洗練されたテーブルの作成に必要なすべての HTML を出力しました。最終的には、R Markdown に対してのみ、LateX で見られるのと同じ程度のテーブル フォーマット コントロールが必要です。そして、そのような投稿がブログ、シンジケーション、RSS リーダーなどに頻繁に表示されることを考えると、書式設定コマンドが本文にあるとよいでしょう。

質問

  • gvis と同様のアプローチ (HTML 本文のスクリプトなど) を使用して、HTML テーブルの書式を設定することはできますか (行、セルの書式設定、セルの高さと幅、フォントなど)。
  • そのようなテーブルの作成をサポートする既存の R 関数はありますか?
  • この質問の前提は理にかなっていますか、それとも R Markdown を使用して正確な HTML テーブルの書式設定を行うという私のより広い目的を達成するための他の方法はありますか?

アップデート

Joe は私の以前の質問に回答を追加し、3 つのオプション (ボディ内のスタイル、ヘッダーにスタイルを埋め込む JavaScript、スコープ付きスタイル ブロック) について言及しています。したがって、残っている主な問題は、R Markdown コード ブロックでこのようなアプローチを容易に使用できるインターフェイスが存在するかどうかということだと思います。

4

1 に答える 1

3

RStudio Docsから、knitr以下を使用してカスタム スタイルシートを使用するように設定できます。

# Set Custom CSS
options(rstudio.markdownToHTML=
  function(inputFile, outputFile) {      
    require(markdown)
    markdownToHTML(inputFile, outputFile, stylesheet='custom.css')   
  }
) 

stylesheet='custom.css'スタイルシートへのファイルパスに置き換えるだけです。

次に、チャンク内のオプションと and を組み合わせるxtableと、適切にフォーマットされたテーブルが得られます。printtype="html"

xtable必要に応じて LaTeX も生成します。

于 2012-12-16T23:06:15.400 に答える