Re: [R] a strange behavior with ifelse

2011-04-09 Thread Jim Lemon
On 04/09/2011 03:56 AM, wgu wrote: 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 n

Re: [R] a strange behavior with ifelse

2011-04-08 Thread jim holtman
try 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) > c1 <- ifelse((!is.na(a) & a == 1) | (!is.na(b) & b == 1) + , 1 + , ifelse((!is.na(a) & a == 2) | (!is.na(b) & b == 2) + , 2 + , NA + ) + ) > cbind(a, b, c1)

Re: [R] a strange behavior with ifelse

2011-04-08 Thread Joshua Wiley
Hi, The problem is that (a == 1 | b == 1) returns some NAs. NAs are not treated as strictly TRUE or FALSE. From the documentation (see ?ifelse) "Missing values in 'test' give missing values in the result". You need to use a construct designed to force a TRUE/FALSE value OR something that handle

[R] a strange behavior with ifelse

2011-04-08 Thread wgu
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