Применение предикатов в списке в R
При заданном списке значений в R, каков хороший способ фильтрации значений в списке с помощью заданной функции предиката?
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