Ooops! Sorry, I send it only to Uwe Ligges the first time.
Best,
Philippe Grosjean
This is perhaps another solution, more elegant in the way the block
comment is written... but it requires to redefine `!` and slows it a
little bit because it tests first its arguments before calling
.Primitive(!):
It takes advantage of `!` being not defined for character arguments:
!2
[1] FALSE
!some text
Error in !some text : invalid argument type
So, now, we will define it for character arguments (invisibly returns
the argument)
`!`- function(x)
+ if (inherits(x, character) == FALSE)
+ .Primitive(!)(x) else invisible(x)
Now, `!` can be used to construct a block comment:
A R script with block comments =
1+1 # This is a line comment
!'
This is a block comment spread
on several lines...
'
ls()
!!'
This is another block comment, possibly of higher
importance than the previous one
'
search()
!!!'
For color syntax highlighting and to better detect
the end of block comments, one may also decide to
use the same code for opening and closing the comments
like it is the present case
!!!'
!'
Note that the only constraint is to escape single quotes
in block comments (or not to use single quotes)
Of course, one could also decide to use double quotes
instead of single quotes
!'
!'
Now, it would be nice to have a little patch of .Primitive(!)
that simply displays no error message in case the argument of
`!`is a character sting. So, the hock would not be required
any more
!'
And of the R script =
Best,
Philippe Grosjean
Uwe Ligges wrote:
Robin Hankin wrote:
On 5 Oct 2006, at 10:05, Uwe Ligges wrote:
Wee-Jin Goh wrote:
Hello list,
Is there any way to perform a block comment in R? In C++, anything in
between a /* and */ is considered a comment, and it allows
programmers to comment out chunks of code for testing and debugging.
Is there such a feature in R?
This has frequently been asked on the list. Try to google for it. You
will find answers like
if(FALSE){
code block
commented
}
That method doesn't work for me:
if(FALSE){
if(12)
print(12)
else
print(12)
}
Use an editor that comments out a whole block which is what I do all the
time, e.g. use Tinn-R, Emacs or WinEdt, to mention just a few of them.
Or you can go ahead and use
if(FALSE){
if(12)
print(12)
else
print(12)
}
or
if(FALSE){'
if(12)
print(12)
else
print(12)
'}
Uwe
returns an error. How would I comment out that block of (incorrect) code?
or use a good editor that supports commenting and uncommenting blocks.
Uwe Ligges
--
Robin Hankin
Uncertainty Analyst
National Oceanography Centre, Southampton
European Way, Southampton SO14 3ZH, UK
tel 023-8059-7743
__
R-help@stat.math.ethz.ch mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.
__
R-help@stat.math.ethz.ch mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.