[R] is there an equivalent for #ifdef (C langage) in R
Henrik Bengtsson
hb at biostat.ucsf.edu
Fri Jan 13 00:09:05 CET 2012
You could generate an R script using an RSP template 'main.R.rsp' containing:
<% DEBUG <- TRUE %>
<% if (!DEBUG) { %>
make_addition = function(a, b) {
<% } %>
<% if (DEBUG) { %>
a = 1
b = 2
<% } %>
c=a+b
plot(c)
<% if (!DEBUG) { %>
return(c)
}
<% } %>
which you can compile into 'main.R' using R.rsp::rsp("main.R.rsp").
You can compile and run it in one go by:
source(R.rsp::rsp("main.R.rsp"))
Changing DEBUG to FALSE generates the alternative main.R file. Note
that the *.R.rsp file is not parsed by R, so it is only the generated
main.R that has to be valid before it is passed to source().
My $.02
/Henrik
On Thu, Jan 12, 2012 at 7:36 AM, ikuzar <razuki at hotmail.fr> wrote:
> Hi,
> I'd like to know if there is an equivalent for #ifdef (Clangage) in R. I 'd
> like to do something like:
>
> useDebug = defmacro(DEBUG, expr=(DEBUG==1))
>
> if(useDebug(0)){
> #Here I do not use debug mode
> make_addition = function(a, b) {
> c=a+b
> plot(c)
> return(c)
> }
> }else{
> #here I use debug mode
> c=a+b
> }
>
> I assume this would work... The problem is :
> if I have 15 lines of code in if{ } bloc I have to copy and paste these15
> lines into else{} bloc. These is too many lines in my file...
>
> Is there something like (in C langage):
>
> #define DEBUG 1
>
> #ifndef DEBUG
> make_addition = function(a, b) {
> #endif
> #ifdef DEBUG
> a = 1
> b = 2
> #endif
> c=a+b
> plot(c)
> #ifndef DEBUG
> return(c)
> }
> #endif
>
> my goal is to run my program WITHOUT calling my_addition(1, 2) (for
> debugging). The main problem : all variables do not exist when just running
> my _file.R , I have to call my_function if I want to see results.
>
> I use RStudio
>
> Thanks for your help
>
>
> --
> View this message in context: http://r.789695.n4.nabble.com/is-there-an-equivalent-for-ifdef-C-langage-in-R-tp4289356p4289356.html
> Sent from the R help mailing list archive at Nabble.com.
>
> ______________________________________________
> R-help at r-project.org 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.
More information about the R-help
mailing list