【发布时间】:2011-05-01 13:15:05
【问题描述】:
给定 R 中的值列表,用给定的谓词函数过滤列表中的值的好方法是什么?
【问题讨论】:
给定 R 中的值列表,用给定的谓词函数过滤列表中的值的好方法是什么?
【问题讨论】:
在 R 中是否有适当的列表对象或其他类型的对象(如 data.frame 或向量)并不完全清楚。假设你有一个真正的列表对象,我们可以结合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
【讨论】: