在R中的列表中应用谓词

时间:2011-05-01 13:15:06

标签: list r predicate

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

1 个答案:

答案 0 :(得分: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