[R] list operation

William Dunlap wdunlap at tibco.com
Wed Jun 23 23:13:04 CEST 2010


  > lst <- list(m=c('a','b','c'),n=c('c','a'),l=c('a','bc'))
  > f <- function(list, set) vapply(lst, function(el)all(is.element(set, el)), FUN.VALUE=logical(1))
  > # if you have an old version of R use as.logical(sapply(...))
  > # instead of vapply(..., FUN.VALUE=logical(10)
  > i <- f(lst, c("a","c"))
  > i
      m     n     l 
   TRUE  TRUE FALSE 
  > names(lst)[i]
  [1] "m" "n"
  > lst[i]
  $m
  [1] "a" "b" "c"
  
  $n
  [1] "c" "a"

Bill Dunlap
Spotfire, TIBCO Software
wdunlap tibco.com  

> -----Original Message-----
> From: r-help-bounces at r-project.org 
> [mailto:r-help-bounces at r-project.org] On Behalf Of Yuan Jian
> Sent: Wednesday, June 23, 2010 6:35 AM
> To: r-help at r-project.org
> Subject: [R] list operation
> 
> Hi,
>  
> it seems a simple problem, but I can not find a clear way.
> I have a list:
> lst=list(m=c('a','b','c'),n=c('c','a'),l=c('a','bc'))
> > lst
> $m
> [1] "a" "b" "c"
> $n
> [1] "c" "a"
> $l
> [1] "a"  "bc"
> 
> how can I get list elements that include a given subset? for 
> example, for given subset {'a','c'}, the answer should be 'm' and 'n'.
>  
> thanks
> Yu
> 
> 
>       
> 	[[alternative HTML version deleted]]
> 
> 



More information about the R-help mailing list