[R] if condition doesn't evaluate to True/False

Petr PIKAL petr.pikal at precheza.cz
Wed Apr 29 17:21:26 CEST 2009


Hi

r-help-bounces at r-project.org napsal dne 29.04.2009 17:05:01:

> see
> ?is.null
> 
> e.g.
> if( is.null(sub_grp_whr_cls_data[sbgrp_no, 1]) )
> {
>   your code
> }

It probably will not work as 

sub_grp_whr_cls_data[sbgrp_no,1]=="NULL"

implicates that there is character value "NULL". I am not sure if you can 
get NULL as a part of some object. I tried and failed.
See what you get
x<- c(1,2,3, NULL)

Regards
Petr


> 
> Moumita Das wrote:
> > Hi friends,
> > Please help me with this bug.
> > 
> > *Bug in my code:*
> > 
> > In this variable sub_grp_whr_cls_data[sbgrp_no,1] I store the where
> > clause.every sub group has a where condition linked with it.
> > 
> > Database1
> > 
> > 
> > Where clause  was  not found for a particular subgroup,
> > sub_grp_whr_cls_data[sbgrp_no,1]  value was NULL
> > 
> > So the condition (*sub_grp_whr_cls_data[sbgrp_no,1]=="NULL" ||
> > sub_grp_whr_cls_data[sbgrp_no,1]==""*) should evaluate to TRUE ,but it
> > evaluated to NA
> > 
> > So the if block where I used the the condition threw error
> > 
> > If(*sub_grp_whr_cls_data[sbgrp_no,1]=="NULL" ||
> > sub_grp_whr_cls_data[sbgrp_no,1]==""*)
> > 
> > i.e if(NA)
> > 
> > Error:--
> > 
> > Error in if (sub_grp_whr_cls_data[sbgrp_no, 1] == "NULL" ||
> > sub_grp_whr_cls_data[sbgrp_no,  :
> > 
> >   missing value where TRUE/FALSE needed
> > 
> > Comments:-- but when there ‘s no where clause value the condition
> > (sub_grp_whr_cls_data[sbgrp_no,1]=="NULL"
> > ||sub_grp_whr_cls_data[sbgrp_no,1]=="") should automatically evaluate 
to *
> > TRUE*
> > 
> > 
> > 
> > Database2
> > 
> > Where clause  was  found for a particular subgroup
> > 
> > The condition (sub_grp_whr_cls_data[sbgrp_no,1]=="NULL"
> > ||sub_grp_whr_cls_data[sbgrp_no,1]=="") evaluated to FALSE
> > 
> > So if (sub_grp_whr_cls_data[sbgrp_no,1]=="NULL"
> > ||sub_grp_whr_cls_data[sbgrp_no,1]=="") is
> > 
> > If (FALSE) ,control goes to the else part.
> > 
> > This is exactly what is expected of the program.
> > 
> > *QUERY:-- **If the condition evaluates to FALSE  when a where 
condition is
> > available why doesn’t it evaluate to TRUE when a where condition 
available
> > is NULL or no where condition is available.*
> > 
> > Here I have taken the example of two databases where I tried to get 
the
> > where clause for subgroup 1.In case of Database1 it was not available 
in
> > case of Databse2 it was available.But the problem may appear for the 
same
> > database also, when where clause is available for say one subgroup and 
not
> > for the other.
> > 
> > 
> > 
> > 
------------------------------------------------------------------------
> > 
> > ______________________________________________
> > 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.
> 
> 
> -- 
> Matthias Burger                     Project Manager/ Biostatistician
> Epigenomics AG    Kleine Praesidentenstr. 1    10178 Berlin, Germany
> phone:+49-30-24345-0                            fax:+49-30-24345-555
> http://www.epigenomics.com           matthias.burger at epigenomics.com
> --
> Epigenomics AG Berlin           Amtsgericht Charlottenburg HRB 75861
> Vorstand:                           Geert Nygaard (CEO/Vorsitzender)
>                                             Oliver Schacht PhD (CFO)
> Aufsichtsrat:   Prof. Dr. Dr. hc. Rolf Krebs (Chairman/Vorsitzender)
> 
> ______________________________________________
> 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.



More information about the R-help mailing list