[R] how to not match partial names
    Duncan Murdoch 
    murdoch.duncan at gmail.com
       
    Sun May  8 01:25:50 CEST 2011
    
    
  
On 07/05/2011 7:09 PM, William Revelle wrote:
> Dear friends,
>
> How do I stop partial matching of list names?
>
> e.g.,
>
> x<- list(AAAA="aaaaa", BBBBB="bbbbb")
> is.null(x$A)   #returns FALSE  even though there is no element A.
>
> if(is.null(x$A))  {result<-  x$BBBB} else {result<- x$A}
> result   #is aaaa even though there is no x$A element
>
> x<- list(CCCC="aaaaa", BBBBB="bbbbb")
> if(is.null(x$A))  {result<-  x$BBBB} else {result<- x$A}
> result   #this is great
>
> x<- list(ABC="aaaaa", BBBBB="bbbbb")
> if(is.null(x$A))  {result<-  x$BBBB} else {result<- x$A}
> result  #partial matches  and returns aaaa
>
> x<- list(ABC="abc", BBBBB="bbbbb",AA="aaaa")
> if(is.null(x$A))  {result<-  x$BBBB} else {result<- x$A}
> result  #can not partial match, and thus returns bbbb
>
> x<- list(AAB="aab", BBBBB="bbbbb",AA="aaaa")
> if(is.null(x$A))  {result<-  x$BBBB} else {result<- x$A}
> result #also can not partial match
>
> My need for this is that I have several functions that return lists
> and I am trying to extract AAAA if it exists, but something else if
> it does not.
Both
"A" %in% names(x)
will return false, and
is.null(x[["A"]])
will return TRUE.
Duncan Murdoch
    
    
More information about the R-help
mailing list