[R] ifelse and "&&" vs "&"

From: Christos Argyropoulos <argchris_at_hotmail.com>
Date: Wed, 18 Jun 2008 16:10:30 +0300

Hi,

I noticed whether some one could explain why "&" and "&&" behave differently in data frame transformations.

Consider the following :

a<-data.frame(r=c(0,0,2,3),g=c(0,2,0,2.1))

Then:

> transform(a,R=ifelse(r>0 && g> 0,log(r/g),NA))

  r g R

1 0 0.0 NA
2 0 2.0 NA
3 2 0.0 NA
4 3 2.1 NA

but

> transform(a,R=ifelse(r>0 & g> 0,log(r/g),NA))

  r   g         R
1 0 0.0        NA
2 0 2.0        NA
3 2 0.0        NA

4 3 2.1 0.3566749

If my understanding of the differences between "&" and "&&" and how 'transform' works are accurate, both statements should produce the same output.

I got the same behaviour in Windows XP Pro 32-bit (running R v 2.7) and Ubuntu Hardy (running the same version of R).

Thanks

Christos Argyropoulos

University of Pittsburgh Medical Center



Discover the new Windows Vista

E



R-help_at_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. Received on Wed 18 Jun 2008 - 13:39:18 GMT

Archive maintained by Robert King, hosted by the discipline of statistics at the University of Newcastle, Australia.
Archive generated by hypermail 2.2.0, at Wed 18 Jun 2008 - 16:30:47 GMT.

Mailing list information is available at https://stat.ethz.ch/mailman/listinfo/r-help. Please read the posting guide before posting to the list.

list of date sections of archive