开发者

Applying predicates on a list in R

开发者 https://www.devze.com 2023-03-02 03:01 出处:网络
Given 开发者_开发问答a list of values in R, what is a nice way to filter values in a list by a given predicate function?It\'s not entirely clear whether you have a proper list object in R, or another

Given 开发者_开发问答a list of values in R, what is a nice way to filter values in a list by a given predicate function?


It's not entirely clear whether you have a proper list object in R, or another type of object such as a data.frame or vector. Assuming you have a true list object, we can combine lapply and subset to do what you want. If you don't have a list, then there's no need for 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
0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号