给定R中的值列表,通过给定谓词函数过滤列表中值的有什么好方法?
答案 0 :(得分:1)
目前还不完全清楚R中是否有正确的列表对象,或者是data.frame或vector等其他类型的对象。假设您有一个真正的列表对象,我们可以将lapply
和subset
结合起来,做您想做的事情。如果您没有列表,则不需要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