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 <raz...@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@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. ______________________________________________ R-help@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.