私はこの質問が this 1に似ていることを知っています。しかし、私はそこで解決策を得ることができなかったので、ここにもう一度投稿します。
「KnitHTML」をクリックしたときとまったく同じ出力をコマンドで取得したいと思います。 knit2htmlを使ってみましたが、フォーマットが乱れてタイトルが入っていない、ケーブルが動かないなど。
例:
これは私のtest.Rmdファイルです。
---
title: "test"
output: html_document
---
This is an R Markdown document. Markdown is a simple formatting syntax for authoring HTML, PDF, and MS Word documents. For more details on using R Markdown see <http://rmarkdown.rstudio.com>.
When you click the **Knit** button a document will be generated that includes both content as well as the output of any embedded R code chunks within the document. You can embed an R code chunk like this:
```{r}
library(knitr,quietly=T)
kable(summary(cars))
```
You can also embed plots, for example:
```{r, echo=FALSE}
plot(cars)
```
Note that the `echo = FALSE` parameter was added to the code chunk to prevent printing of the R code that generated the plot.
出力:
ニットHTML
knit2html
ドキュメント は次のことを示しています。
RStudioを使用していない場合は、次のように
rmarkdown::render
関数を呼び出す必要があります。rmarkdown::render("input.Rmd")
RStudioの「ニット」ボタンを使用する場合、基本的なメカニズムは同じであることに注意してください(RStudioは内部で
rmarkdown::render
関数を呼び出します)。
本質的に、rmarkdown::render
はknitr::knit2html
よりもはるかに多くのセットアップを行いますが、すべての違いの完全なリストはありません。
出力をレンダリングする最も柔軟な方法は、とにかく、独自のスタイルシートを提供して、希望に応じて出力をフォーマットすることです。
コマンドラインでrmarkdown::render
を操作するには、 Pandocを手動で設定 する必要があることに注意してください。
そうは言っても、ここにknitr::knit2hmtl
の出力を改善し、私の意見ではrmarkdown::render
を使用するよりも優れている2つの意見があります:
タイトルを含めるには、YAMLタグではなくMarkdownタイトルタグを使用します。
# My title
テーブルをフォーマットするには、raw kable
関数を使用しないでください。実際、これはrmarkdown::render
を使用する場合にも当てはまります。テーブルセルの配置が完全にオフになっています。 Rmarkdownは明らかにデフォルトの配置としてセンタリングを使用していますが、このオプションはほとんど正しくありません。代わりに、テキストを左揃えにし、(通常は)数字を右揃えにする必要があります。この記事の執筆時点では、Knitrはこれを自動的に行うことはできませんが(私が知る限り)、これを行うためのフィルターを含めるのはかなり簡単です。
```{r echo=FALSE}
library(pander)
# Use this option if you don’t want tables to be split
panderOptions('table.split.table', Inf)
# Auto-adjust the table column alignment depending on data type.
alignment = function (...) UseMethod('alignment')
alignment.default = function (...) 'left'
alignment.integer = function (...) 'right'
alignment.numeric = function (...) 'right'
# Enable automatic table reformatting.
opts_chunk$set(render = function (object, ...) {
if (is.data.frame(object) ||
is.matrix(object)) {
# Replicate pander’s behaviour concerning row names
rn = rownames(object)
justify = c(if (is.null(rn) || length(rn) == 0 ||
(rn == 1 : nrow(object))) NULL else 'left',
sapply(object, alignment))
pander(object, style = 'rmarkdown', justify = justify)
}
else if (isS4(object))
show(object)
else
print(object)
})
```