# [R] Ifelse stability problems?

peter dalgaard pdalgd at gmail.com
Sun Dec 19 22:46:05 CET 2010

```On Dec 19, 2010, at 15:01 , Peter Ehlers wrote:

> On 2010-12-19 03:50, Luca Meyer wrote:
>> I am just wondering why what I am showing below might occur.
>>
>> First I have an x data.frame:
>>
>>> str(x)
>> 'data.frame':   281 obs. of  2 variables:
>>  \$ x1   : Factor w/ 5 levels "A (50-67%)","B (10-20%)",..: 1 2 5 1 2 5 1 2 5 1 ...
>>  \$ x2   : num  33.8 60.2 6 76.8 13.8 9.4 76.9 8 15.1 78.1 ...
>>
>> I need to check that for each level of factor x1 the values of x2 are (approximately) contained within a given range. In such a case I will print "ok" a third variable, otherwise I will write "err"
>>
>> ifelse (x\$x1 == "A (50-67%)",
>>     x\$check<-ifelse(x\$x2<68&x\$x2>49,"ok","xxxx"),
>>     x\$check<-x\$check
>> )
>
> [...snip...]
>
>> Can anyone explain why this might occur?
>
> You have a bit of a logic problem in your ifelse;
> try it this way:
>
> x\$check <- NA
> x\$check <- ifelse (x\$x1 == "A (50-67%)",
>    ifelse(x\$x2<68&x\$x2>49,"ok","xxxx"),
>    x\$check
> )
>

Yes. The whole thing can be written much more concisely, though:

lw <- c(49,9,4,0,9)
up <- c(68,21,16,6,21)

x\$check <- ifelse(x\$x2 < up[x\$x1] & x\$x2 > lw[x\$x1], "ok", "xxxx")

> etc.
>
> Peter Ehlers
>
>
>>
>> Thanks,
>> Luca
>>
>>
>> Luca Meyer
>> www.lucameyer.com
>> IBM SPSS Statistics release 19.0.0
>> R version 2.12.1 (2010-12-16)
>> Mac OS X 10.6.5 (10H574) - kernel Darwin 10.5.0
>>
>>
>>
>
> ______________________________________________
> R-help at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help