[R] Bug in ifelse

Daniel Malter daniel at umd.edu
Thu Oct 9 23:33:16 CEST 2008


Hi all, I am quite sure it's not a bug, but I am going nuts about this. I do
not possibly understand why I get different results for b1 and b2 as shown
below.

x=c(183,191,192,193,195,206,207,209,210,211,212,213,214,217,218,221,222,223,
224,225,227,228,229,230)

y=c(221,225,228,241,242)

z=y[y<max(x)] ##all Ys smaller than the maximum of X

a=ifelse(length(z)==0,NA,max(z)) ##assign NA if length of z is zero, take
the max of z otherwise

b1=ifelse(is.numeric(a)==T,x[x>a],x) ##if a is numeric, assign all x that
are greater than a; otherwise assign the entire x

b2=x[x>a] ## assign all x greater than a


b1 and b2 should be equal as I see it. Anybody who can explain why they are
not makes my day, especially the one who can tell me how I can get b1 equal
to b2 (without sacrificing the ifelse condition).

Thanks much,
Daniel

-------------------------
cuncta stricte discussurus



More information about the R-help mailing list