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

Petr PIKAL petr.pikal at precheza.cz
Thu Apr 30 09:44:18 CEST 2009


OK

test <- list( NULL, NULL, NULL)

gives you list with three null values. But you can not subscript it like

test[[1,1]

what original poster did and you can not produce data frame with multiple 
NULL values

test <- data.frame(NULL, NULL, NULL)
> test
data frame with 0 columns and 0 rows
> str(test)
'data.frame':   0 obs. of  0 variables

and test it with is.null

> is.null(test)
[1] FALSE

regards
Petr

Bert Gunter <gunter.berton at gene.com> napsal dne 29.04.2009 18:34:00:

> test <- list(NULL)
> 
> Bert Gunter
> Nonclinical Biostatistics
> 467-7374
> 
> 
> > -----Original Message-----
> > From: r-help-bounces at r-project.org 
> > [mailto:r-help-bounces at r-project.org] On Behalf Of Petr PIKAL
> > Sent: Wednesday, April 29, 2009 8:21 AM
> > To: ml-r-help at epigenomics.com
> > Cc: r-help at stat.math.ethz.ch; Moumita Das
> > Subject: Re: [R] if condition doesn't evaluate to True/False
> > 
> > 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.
> > 
> > ______________________________________________
> > 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