2016-02-17 15 views
13

私は、RMarkdownデモンストレーションがコース素材の作成に使用されたRMarkdown文書に埋め込まれたRMarkdownの書き方をデモンストレーションしたいと思います。この隔離されたコードブロック内で、私はチャンクを実行するknitrしないでください。RmarkdownとRmarkdownをknitr評価なしで埋め込む

「トップレベル」のRmarkdownドキュメントにこのようなものを入れて、外側のフェンスの間にあるすべてのものを出力HTMLドキュメントの固定幅で逐語的に印刷することができます。チャンクとインラインコード。

``` 
--- 
title: "RMarkdown teaching demo" 
author: "whoever" 
--- 

# Major heading 

Here's some text in your RMarkdown document. Here's a code chunk: 

```{r, eval=FALSE} 
head(mtcars) 
``` 

Now we're back into regular markdown in our embedded document. 

Here's inline code that I don't want executed either; 
e.g. mean of mpg is `r mean(mtcars$mpg)`. 

``` 

私はzero-width space trick in knitr example 65を試みたが、(私はHTMLとPDFの両方が必要です)PDFをコンパイルしようとしたとき、これは失敗します。

答えて

12

これを実現する方法の1つがここにあります。コードチャンクが認識されないようにチャンクヘッダーの前に`r ''`を追加し、knitr::inline_expr()を使用して`r `を生成することができます。

```` 
--- 
title: "RMarkdown teaching demo" 
author: "whoever" 
--- 

# Major heading 

Here's some text in your RMarkdown document. Here's a code chunk: 

`r ''````{r, eval=FALSE} 
head(mtcars) 
``` 

Now we're back into regular markdown in our embedded document. 

Here's inline code that I don't want executed either; 
e.g. mean of mpg is `r knitr::inline_expr('mean(mtcars$mpg)')`. 

```` 

あなただけの、例えば、別のファイルにRマークダウンの例文書を保存し、readLines()を経由して、トップレベルの文書に含めるかどうかは容易になります

```` 
`r paste(readLines('example.Rmd'), collapse = '\n')` 
```` 

フェンスドコードブロックに3つのバッククォートを含めるには、4つ以上のバッククォートが必要です。それで私はここで4つ使用しています。

+0

これはうまく動作しますが、私が変更するのは、 'r ''' ''で、同じ方法でボトムフェンスを閉じることだけです。それ以外の場合は、RStudioの構文ハイライトが無効になります。 –

+0

右。これは、RStudioの構文強調表示に役立ちますが、ニットが機能するためには必要ありません。 –

+0

私にとっては( 'rmarkdown_1.0')インラインピースは、バッククォートを表示するためにエスケープが必要でした。 – tonytonov

1

PDF出力について確認、しかしであなたのデモrmarkdownを取り巻くない:

<pre> 
... 
</pre> 

は、HTMLのために働くようです。

+0

yep、pdf用ではありません。 –

4

これは、HTML出力とPDF出力の両方に機能するcat関数を使用して行います。

--- 
title: "RMarkdown teaching demo" 
author: "whoever" 
--- 

# Major heading 

Here's some text in your R Markdown document. Here's a code chunk: 

```{r, echo=FALSE, comment=""} 
cat(c("```{r, eval=FALSE}", 
     "head(mtcars)", 
     "```"), 
    sep='\n') 
``` 

Now we're back into regular Markdown in our embedded document. 

Here's inline code that I don't want executed either: 

```{r, echo=FALSE, comment=""} 
cat("The mean of mpg is `r mean(mtcars$mpg)`.") 
``` 
関連する問題