[R] a strange behavior with ifelse

wgu wgu at uab.edu
Fri Apr 8 19:56:57 CEST 2011


I have used R for years but run into a seemingly simple problem involving 'ifelse'.  condensed code like this

 a=c(2,NA,NA,NA,2,2,NA,2,NA,2)
 b=c(NA,1,1,NA,2,2,2,2,2,2)

#I want to combined a and b into c so that c would be a valid number either a or b is not missing

c=ifelse(a==1|b==1,1,ifelse(a==2|b==2,2,NA))
cbind(a,b,c)

          a  b  c
 [1,]  2 NA NA
 [2,] NA  1  1
 [3,] NA  1  1
 [4,] NA NA NA
 [5,]  2  2  2
 [6,]  2  2  2
 [7,] NA  2 NA
 [8,]  2  2  2
 [9,] NA  2 NA
[10,]  2  2  2

look at rows 1, 7 and 9, c supposes to be 2 but got NA instead. seemingly, the second 'ifelse' doesn't perform as it supposes. 

my R version is 2.12.2

any suggestion


More information about the R-help mailing list