[R] if one of 4 conditions is not satisfied

mysimbaa adel.tekari at sisltd.ch
Tue Jul 1 19:08:29 CEST 2008


Thank you very much for your precise help.
I will try to implement this tomorrow.
It looks like the best solution which could be done.
Greetings,

Adel Tekari




Marc Schwartz wrote:
> 
> on 07/01/2008 07:40 AM mysimbaa wrote:
>> I'm trying to do realize the following:
>> I have 4 condtions.
>> If all conditions are satisfied I will paste("PASS")
>> If any of these is not satisfied I will paste("FAIL"). But I have to
>> paste
>> the corresponding failure.
>> 
>> ifelse is a good solution but for a 2 conditions. Maybe switch or
>> something
>> like this.
>> 
>> Does anyone have an idea how to do?
>> 
>> Thanks in advance.
>> Adel
> 
> An easy way would be to have your condition results, which are 
> presumably TRUE/FALSE, in a vector such as:
> 
>    Cond <- c(TRUE, FALSE, FALSE, TRUE)
> 
> Then you could use all() to check to see if they are 'all' TRUE:
> 
>    > all(Cond)
>    [1] FALSE
> 
> Then use which() to get the index of the FALSE elements:
> 
>    > which(!Cond)
>    [1] 2 3
> 
> If you have your test labels in a character vector, such as:
> 
>    Cond.Vec <- c("Cond 1", "Cond 2", "Cond 3", "Cond 4")
> 
> You could then use:
> 
> if (all(Cond)) {
>    Out <- "PASS"
> } else {
>    Out <- paste("FAIL:", paste(Cond.Vec[which(!Cond)],
>                          collapse = " & "))
> }
> 
> 
>  > Out
> [1] "FAIL: Cond 2 & Cond 3"
> 
> 
> See ?all and ?which
> 
> HTH,
> 
> Marc Schwartz
> 
> ______________________________________________
> R-help at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide
> http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.
> 
> 

-- 
View this message in context: http://www.nabble.com/if-one-of-4-conditions-is-not-satisfied-tp18214194p18220836.html
Sent from the R help mailing list archive at Nabble.com.



More information about the R-help mailing list