2017-06-08 6 views
1

コメント、私はHTMLのコメントを使用し、私が処理されるか、または出力にしているしたくない大きなブロックをマークします。 Rstudioではこれがうまく動作しますが、これはコメント内のすべてを無視します。しかし、私がRstudioに文書を編むように頼むと、knitrRのコードブロックをコメント内で実行しています。knitrは<strong>Rmarkdown</strong>ファイルを編集するRstudio</strong><strong>を使用して

ここMWE .Rmdファイルです:

# Important stuff I want to see 
This is what I want to see: 
```{r} 
pi # I like pi 
``` 
<!--- 
**This section commented out, as not ready to be knit yet** 
This is what I do not want to see: 
```{r} 
cake # I also like cake, but it's undefined 
``` 
--> 

これはError in eval(expr, envir, enclos) : object 'cake' not found ... Execution halted

で失敗するknitr原因はRの実行からknitrを防ぐRmarkdownファイルの全体の帯状をコメントアウトする簡単な方法はありますコメントのコードチャンク

私はglobal comment option for R markdown in knitrComments in Markdownと同様にhttps://yihui.name/knitr/を見ましたが、解決策は見つかりませんでした。

+0

部品全体を選択してCtrl + Shift + Cを押すだけですか? –

+1

ちょうどFYI https://github.com/yihui/knitr/issues/1363 –

+0

ありがとうYihui - 次回私は問題があることを覚えています。素晴らしいツールもありがとう! – chriss

答えて

0

コードチャンクの前後の行を選択し、Control/Shift-C(pc)を使用してコメントアウトします。この種の構文が得られます。それは編み物ではなく、誤りを出さないでしょう。あなたのコードのこの部分を完了するまで、第2のコードジャンクで

<!-- **This section commented out, as not ready to be knit yet** --> 
<!-- This is what I do not want to see: --> 
<!-- ```{r} --> 
<!-- cake # I also like cake, but it's undefined --> 
<!-- ``` --> 
+0

さて、それは動作します:)それは核のオプションのようなものです。私は実際には行ごとのコメントではなく、ブロックコメントを探していると思います。これは、私が持っている大きなセクションでは扱いにくいもので、コメントのあるセクションとドキュメント内の他の場所との間にチャンクをコピー/ペーストするときに、行単位でコメントを解除する必要があることを意味します。 'knitr'で動作するブロックコメントについて考えてみませんか? – chriss

+0

私の目的はhtmlブロックコメントを使ったほうがずっといいですし、 '# 'のようにその中のすべての行頭に別のコメント文字を追加するだけです。これは、左の余白に1文字しかないので、視覚的なノイズは少なくなり、後でコピーして貼り付けると整理が楽になります。しかし、それはまだ線に沿ったものです...(私は実際にvimで私の編集を行いますが、Rstudioを通してknitrとやりとりします...) – chriss

0

あなたはeval=Fを設定することができます。

これはknitrはRのコードブロックを実行していないブロックコメントを行う方法として働き、 eval=Fを使用してのjburkhardtのアイデアを取る
<!-- 
**This section commented out, as not ready to be knit yet** 
This is what I do not want to see: 
```{r eval=F} 
cake # I also like cake, but it's undefined 
``` 
--> 
+0

実際に、私はあなたのアイデアが好きです。これは複数のコードブロックを持つ大きなセクションには直接適用できませんが、デフォルトのチャンクオプションをコメントの先頭に 'eval = FALSE'に設定し、末尾の' eval = TRUE'に戻します。必要 – chriss

1

Stuff I want to see... 
```{r} 
pi 
``` 

<!-- 
This is added at the beginning of the comment: 
```{r, include=FALSE} 
knitr::opts_chunk$set(eval= FALSE) 
``` 

Stuff I have commented out: 

```{r} 
cake 
``` 

This is added to the end of the comment: 
```{r, include=FALSE, eval=TRUE} 
knitr::opts_chunk$set(eval= TRUE) 
``` 
--> 

More stuff I want to see: 
```{r} 
2*pi 
``` 

それは少し不格好だし、それは確かに防弾ではありません(例えばknitrは明示的にeval=trueで見つかったコードブロックを実行しますが)私の場合は動作します。

関連する問題