2017-06-06 80 views
2

我最近注意到,在使用大塊選項eval的變化。Knitr:不註釋掉不計算代碼

採取以下塊:

<<Chunk1, eval = -2>>= 
x <- rnorm(1) 
Sys.sleep(5) 
print(x) 
@ 

我的文檔中的一些彙編前,這將導致在源代碼中顯示,因爲它是創建的文檔中,但與評估中被忽略的第二行。在文件中,結果會是什麼樣子:

enter image description here

現在似乎已經發生變化,第二行仍沒有評估,但它是在源代碼中註釋掉。我發現之前的行爲非常整齊。現在我可以直接評論第二行,如果我想顯示它已被註釋掉而未被評估。

enter image description here

有沒有辦法讓以前的行爲了?

+0

當你說「有沒有辦法回去」我想你的意思是「是否有使用舊的行爲,其中線沒有評價,但也沒有被註釋掉的方法嗎?」 – Dason

+0

@Dason Correct;) –

+0

'opts_chunk $ set(comment = NA)'? –

回答

2

由於knitr的承諾https://github.com/yihui/knitr/commit/78e4d5d003129a4d7efbec7b178e9a98222d777b

似乎有不被阻止這短短的編寫自己的鉤或分叉和修改的方式。 '違規'代碼是:https://github.com/yihui/knitr/blob/master/R/block.R#L160

可以放入一個issue要求添加控制是否註釋未評估代碼的能力。

+1

我在這裏只是想對一個針織忍者說嗨... –

+0

@Yihui這是一個混帳忍者類型的問題。其實只是更多的「搜索」忍者問題哈哈。 – Dason