[R] several "ifelse" problems...

kathie kathryn.lord2000 at gmail.com
Sat Feb 14 06:08:25 CET 2009


Dear R users,

>From the code below, I try to compute "y" value. (In fact, y looks like a
trapezoid)

------------------------------------------------------------------

x <- seq(0,1,.01) 
y <- ifelse(abs(x-.5)<=0.3,0,
            ifelse(abs(w-.5)>=0.4,-1, 
                   ifelse((0.1<w && w<0.2),10*x-2,-10*x+8)))

------------------------------------------------------------------

So, results are...

------------------------------------------------------------------
> x
  [1] 0.00 0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08 0.09 0.10 0.11 0.12 0.13
0.14
 [16] 0.15 0.16 0.17 0.18 0.19 0.20 0.21 0.22 0.23 0.24 0.25 0.26 0.27 0.28
0.29
 [31] 0.30 0.31 0.32 0.33 0.34 0.35 0.36 0.37 0.38 0.39 0.40 0.41 0.42 0.43
0.44
 [46] 0.45 0.46 0.47 0.48 0.49 0.50 0.51 0.52 0.53 0.54 0.55 0.56 0.57 0.58
0.59
 [61] 0.60 0.61 0.62 0.63 0.64 0.65 0.66 0.67 0.68 0.69 0.70 0.71 0.72 0.73
0.74
 [76] 0.75 0.76 0.77 0.78 0.79 0.80 0.81 0.82 0.83 0.84 0.85 0.86 0.87 0.88
0.89
 [91] 0.90 0.91 0.92 0.93 0.94 0.95 0.96 0.97 0.98 0.99 1.00

> y
  [1] -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1  8  8  8  8  8  8  8  8  8  0  0  0 
0  0
 [26]  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0 
0  0
 [51]  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0 
0  0
 [76]  0  0  0  0  0  8  8  8  8  8  8  8  8  8  8 -1 -1 -1 -1 -1 -1 -1 -1
-1 -1
[101] -1
> 

------------------------------------------------------------------

However, even though the results show that y=8 for x=0.11, when x=0.11,
actual y value is -0.9.  And, y=-0.8 for x=0.88.  I cannot understand the
above results.

Any comments will be greatly appreciated.

Kathryn Lord
-- 
View this message in context: http://www.nabble.com/several-%22ifelse%22-problems...-tp22009321p22009321.html
Sent from the R help mailing list archive at Nabble.com.




More information about the R-help mailing list