[EMAIL PROTECTED] wrote:


I ran into an interesting oddity of R, if (0) { print(1); } else { print(2); }

In both cases the ";" is superflously .....


If if(){}else{} is within an expression (e.g. a function's body), both ways work.
Do you really want to use it outside a function's body? If so, I suggest to write:


if(...){
    ...
} else{
    ...
}



is a syntax error, while
if (0) { print(1); } else { print(2); }
or
if (0) { print(1);
} else { print(2); }
is not. I presume it has to do with the duality of the newline functioning as an end of command (;) character, though it still seems a bit odd, and it took me a while to figure out what was wrong. I eventually figured out that to resolve this ambiguity, I would guess that ifelse() would be a preferred function.

No. ifelse() is for the vectorized conditions. if(){} else{} is more efficient for length 1 conditions. Please read help("if") and help("ifelse").



I wanted to look up the internal R documentation for if via "?if", but this does not work. making the latter work would be a good idea.

?"if" or help("if") do work perfectly.

Uwe Ligges


regards,  /iaw
---
ivo welch
professor of finance and economics
brown / nber / yale

______________________________________________
[EMAIL PROTECTED] mailing list
https://www.stat.math.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html

______________________________________________ [EMAIL PROTECTED] mailing list https://www.stat.math.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html

Reply via email to