Hi all, This question involves using a "for" loop to make a "decision" in a script.
I've written a rather intricate script, and near the start of it, I want it either to do a loop (if a variable called "number.runs" > 1) or not do a loop (if "number.runs" is 1). This is probably trivial but I can't figure it out. Here's a self-contained example that gets at the gist of what I'm looking for: number.runs <- 1 #try it with number.runs <- 2 as well if (number.runs==1) run.number <- 1 if (number.runs>1) for(run.number in 1:number.runs){ print(number.runs) #in the real script, lots happens in here if(number.runs>1) } I'd like the following to print "1" if number.runs==1, and print "1" and then "2" if number.runs==2. But the above syntax does not work. R returns a Syntax Error. This probably has to do with the order of operations? Then I thought I would get tricky and use an eval(parse()) statement: if (number.runs==1) cat("run.number <- 1",file="temp") if (number.runs>1) cat("for(run.number in 1:number.runs){",file="temp") eval(parse(file="temp")) print(number.runs) #in the real script, lots happens in here if(number.runs>1) cat("}",file="temp") eval(parse(file="temp")) But R returns the following error: Error in parse(file, n, text, prompt, srcfile, encoding) : temp: syntax error, unexpected END_OF_INPUT, expecting '\n' or ';' or '}' at 2: for(run.number in 1:number.runs){ -- Matthew C Keller Postdoctoral Fellow Virginia Institute for Psychiatric and Behavioral Genetics ______________________________________________ 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.