根据条件从列表中返回一个向量

时间:2018-04-19 18:01:04

标签: r

我有一个清单

alist <- list(c(1,2,9),c(4,5,4),c(3,11,19))

和常数

value <- 4

我想从列表中返回向量的第一个元素等于常量的向量(即(4,5,4))。我想在基地R做这个。任何人都可以帮忙吗?

1 个答案:

答案 0 :(得分:4)

我们可以使用list遍历sapply,提取第一个元素,将其与&#39; value&#39;进行比较。得到一个逻辑vector和子集&#39; alist&#39;基于那个

alist[sapply(alist, `[`, 1) == value]

Filter

Filter(function(x) x[1] == value, alist)

如果我们使用purrr

purrr::keep(alist, ~ .x[1] == value)