2011-05-01 81 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