2012-02-02 83 views
45

Possible Duplicate:
R: Multiline Comment Workarounds?R:註釋掉的代碼塊

我想註釋掉的R.幾行代碼有沒有這樣做,而不必把#每行之前的任何方式 - 有點像/* blocked out code */在SAS ?

+0

R不做多行註釋。看到類似的線程:http://stackoverflow.com/questions/4131338/is-it-possible-to-have-a-multi-line-comments-in-r – Maiasaura 2012-02-02 05:56:25

+0

我最好的建議是編寫一個宏(或插件以防你使用類似Sublime Text 2的東西),並指定一個鍵盤綁定,以便在你敲擊適當的鍵綁定後,選定的文本(即註釋)在前面得到一個#。 – Maiasaura 2012-02-02 05:58:06

+0

這是一個想法。太糟糕R本身並沒有這樣做。謝謝,Maiasaura。 – user702432 2012-02-02 06:15:55

回答

26

大多數編輯採取某種快捷方式來註釋掉代碼塊。默認編輯器使用類似命令或控制和單引號的方式來註釋選定的代碼行。在RStudio中,它是命令或控制'/'。檢查你的編輯器。

它仍然逐行評論,但他們也取消了選定的行的註釋。對於Mac的RGUI它的命令選項'(我想象的Windows是控制選項)。對於Rstudio,它只是命令或控制+ shift + C。

+3

是的,這是一個超級方便的功能。在Emacs中,只需突出顯示要註釋的區域,然後輸入「C-x r t」,然後鍵入要添加的字符(如'「##」')。要爲SO縮進代碼塊,請執行相同操作,但用四個空格替換最後三個字符! – 2012-02-02 08:03:54

+2

在Emacs中,您還可以使用'M-x註釋區域'。不知道'C-x r',謝謝! – 2012-02-02 08:11:31

+16

CTRL + SHIFT + C切換eclipse/StatET下的選擇評論。 – 2012-02-02 08:40:57

35

一個代碼塊註釋使用if語句:

if(FALSE) { 
    all your code 
} 

它的工作原理,但我幾乎總是使用我的編輯器(RStudio,凱特,KWrite這樣)的塊註釋選項。

19

把它包在一個未使用的功能:

.f = function() { 

## unwanted code here: 

} 
1

我用RStudio或Emacs,並始終使用可用的編輯器的快捷方式發表意見的區域。如果這不可能,那麼你可以使用保羅的答案,但這隻適用於你的代碼在語法上是正確的。

這是我想出來的另一種骯髒的方式,將它包裝在scan()並刪除結果。它將評論存儲在內存中一段時間​​,所以它可能不適用於非常大的評論。最好的方法是在每一行前面放上#標誌(可能帶有編輯快捷鍵)。

foo <- scan(what="character") 
These are comments 
These are still comments 
Can also be code: 
x <- 1:10 
One line must be blank 

rm(foo) 
+2

更髒的變化。定義'「#」< - function()不可見(scan(what = character()))'然後用'「#」()'開始註釋塊。 – 2012-02-02 08:53:49

+0

以前的答案應該是反引號而不是引號(儘管它適用於任何一種情況),但如果我能弄清楚如何在註釋內部引用代碼塊,我會感到厭煩。 – 2012-02-02 08:58:06

+0

裏奇,不錯的建議,但斜線將產生錯誤信息:錯誤:意外 '/' 在: 「''#(#評論 HTTP的開始:/」 – PatrickT 2013-03-11 14:32:34

0

我在支柱94處理了這個在talkstats.com,101 & 103在線程發現:Share Your Code。正如其他人所說,Rstudio可能是更好的選擇。我將這些函數存儲在我的.Rprofile中,並且實際上使用它們來快速自動阻止代碼行。

不像你期待的那麼好,但可能是一種方法。