Применение предикатов в списке в 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
Другие вопросы по тегам