You could put your debug-only code into a function calls like ifDebug(diagnosticPlot(c)) and ifDebug({ tmp <- timeConsumingFunction(c) stopifnot(tmp < 1.0) }) When you want debug output define ifDebug as ifDebug <- function(expr) force(expr) and when you don't want it define it as ifDebug <- function(expr) NULL Because of lazy evaluation, the expression won't get evaluated in the latter case.
Bill Dunlap Spotfire, TIBCO Software wdunlap tibco.com > -----Original Message----- > From: r-help-boun...@r-project.org [mailto:r-help-boun...@r-project.org] On > Behalf Of ikuzar > Sent: Thursday, January 12, 2012 7:37 AM > To: r-help@r-project.org > Subject: [R] is there an equivalent for #ifdef (C langage) in R > > 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.