And, just to make it really clear (I hope!): Your original expression z <-ifelse(t==1 || 2 || 3, 1,0) looks like a transcription into "R" of the words
"If t equals 1 or 2 or 3 then z is 1 else z is 0" However, your "t==1 || 2 || 3" has to be parsed in the correct order according to operator precedence. If you look at '?Syntax' you will see that operator '==' has precedence over the "or" operator '||'. Hence the expression "t==1 || 2 || 3" will be parsed as (t==1) || 2 || 3 So, whatever the value of 't' ("t==1" may be either TRUE or FALSE), the result will be either TRUE || 2 || 3 or FALSE || 2 || 3 When numeric values (like "2" or "3") occur in a logical expression, they are coerced to a logical TRUE (with the one exception that a numerical value of "0" is coerced to FALSE). Hence, whatever the outcome of "t==1" the result will be either TRUE || TRUE || TRUE or FALSE || TRUE || TRUE which is always TRUE. This explains your results. Bill and Phil have given you an alternative which works: "t %in% (1:3)". A way of writing it (though longer) which is closer to your original "wording" could be if( (t==1) || (t==2) || (t==3) , 1, 0) which really spells out how to force the parsing. Hoping this helps, Ted. On 17-Mar-11 03:54:32, bill.venab...@csiro.au wrote: > It doesn't work (in R) because it is not written in R. It's written in > some other language that looks a bit like R. > >> t <- 3 >> z <- t %in% 1:3 >> z > [1] TRUE >> t <- 4 >> z <- t %in% 1:3 >> z > [1] FALSE > > -----Original Message----- > From: r-help-boun...@r-project.org > [mailto:r-help-boun...@r-project.org] On Behalf Of eric > Sent: Thursday, 17 March 2011 1:26 PM > To: r-help@r-project.org > Subject: [R] Why doesn't this work ? > > Why doesn't this work and is there a better way ? > > z <-ifelse(t==1 || 2 || 3, 1,0) > t <-3 > z > [1] 1 > t <-4 > z > [1] 1 > > trying to say ...if t == 1 or if t== 2 or if t ==3 then true, otherwise > false > > -- > View this message in context: > http://r.789695.n4.nabble.com/Why-doesn-t-this-work-tp3383656p3383656.ht > ml > 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. -------------------------------------------------------------------- E-Mail: (Ted Harding) <ted.hard...@wlandres.net> Fax-to-email: +44 (0)870 094 0861 Date: 17-Mar-11 Time: 10:13:53 ------------------------------ XFMail ------------------------------ ______________________________________________ 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.