2011-05-01 75 views
0

给出R中的值列表,通过给定的谓词函数过滤列表中的值有什么好方法?在R列表中应用谓词

+4

请参阅'?Filter'帮助页面。 – 2011-05-01 13:54:57

回答

1

不清楚你在R中是否有适当的列表对象,或者其他类型的对象,如data.frame或vector。假设你有一个真正的列表对象,我们可以结合lapplysubset来做你想做的事。如果您没有列表,则不需要lapply

set.seed(1) 
#Fake data 
dat <- list(a = data.frame(x = sample(1:10, 20, TRUE)) 
    , b = data.frame(x = sample(1:10, 20, TRUE))) 

#Apply the subset function over the list 
lapply(dat, subset, x < 3) 
$a 
    x 
10 1 
12 2 

$b 
    x 
4 2 
7 1 
14 2 
18 2 

#Example two 
lapply(dat, subset, x %in% c(1,7,9)) 
$a 
    x 
6 9 
8 7 
9 7 
10 1 
13 7 

$b 
    x 
3 7 
7 1 
9 9 
15 9 
16 7