Is it possible to have a multi-line comments in R?
You can, if you want, use standalone strings for multi-line comments — I've always thought that prettier than if (FALSE) { }
blocks. The string will get evaluated and then discarded, so as long as it's not the last line in a function nothing will happen.
"This function takes a value x, and does things and returns things that
take several lines to explain"
doEverythingOften <- function(x) {
# Non! Comment it out! We'll just do it once for now.
"if (x %in% 1:9) {
doTenEverythings()
}"
doEverythingOnce()
...
return(list(
everythingDone = TRUE,
howOftenDone = 1
))
}
The main limitation is that when you're commenting stuff out, you've got to watch your quotation marks: if you've got one kind inside, you'll have to use the other kind for the comment; and if you've got something like "strings with 'postrophes" inside that block, then there's no way this method is a good idea. But then there's still the if (FALSE)
block.
The other limitation, one that both methods have, is that you can only use such blocks in places where an expression would be syntactically valid - no commenting out parts of lists, say.
Regarding what do in which IDE: I'm a Vim user, and I find
NERD Commenter an utterly excellent tool for quickly commenting or uncommenting multiple lines. Very user-friendly, very well-documented.
Lastly, at the R prompt (at least under Linux), there's the lovely Alt-Shift-# to comment the current line. Very nice to put a line 'on hold', if you're working on a one-liner and then realise you need a prep step first.
R: Comment out block of code
Most of the editors take some kind of shortcut to comment out blocks of code. The default editors use something like command or control and single quote to comment out selected lines of code. In RStudio it's Command or Control+/. Check in your editor.
It's still commenting line by line, but they also uncomment selected lines as well. For the Mac RGUI it's command-option ' (I'm imagining windows is control option). For Rstudio it's just Command or Control + Shift + C again.
These shortcuts will likely change over time as editors get updated and different software becomes the most popular R editors. You'll have to look it up for whatever software you have.
Multiline Comment Workarounds?
This does come up on the mailing list fairly regularly, see for example this recent thread on r-help. The consensus answer usually is the one shown above: that given that the language has no direct support, you have to either
- work with an editor that has region-to-comment commands, and most advanced R editors do
- use the
if (FALSE)
constructs suggested earlier but note that it still requires complete parsing and must hence be syntactically correct
comments splitting into multiple lines in RMarkdown
It might be caused by knitr
/formattR
's code tidying, with a width.cutoff
set too small. You can check your chunk options with:
opts_chunk$get()
And maybe set a larger width.cutoff
; formatR
will try to make sure no line in your code has a higher number of character than this:
opts_chunk$set(tidy=TRUE,
tidy.opts=list(width.cutoff=60))
Related Topics
Dplyr Broadcasting Single Value Per Group in Mutate
Cbind 2 Dataframes with Different Number of Rows
Count Observations Greater Than a Particular Value
Fixing Cluttered Titles on Graphs
How to Specify a Dynamic Position for the Start of Substring
Tidyr How to Spread into Count of Occurrence
Set Ggplot Plots to Have Same X-Axis Width and Same Space Between Dot Plot Rows
How to Export S3 Method So It Is Available in Namespace
Counting the Frequency of an Element in a Data Frame
Scraping with Rvest - Complete with Nas When Tag Is Not Present
Adding New Column with Diff() Function When There Is One Less Row in R
Subsetting a Dataframe for a Specified Month and Year
R: How to Split a Data Frame into Training, Validation, and Test Sets
How to Get the Name of the Calling Function Inside the Called Routine
Conditional Binary Join and Update by Reference Using the Data.Table Package