使用R获取列表中每个元素的第一个实例

时间:2017-10-12 18:34:38

标签: r

假设我有一个列表y,我想返回到另一个列表x = c('a','b','c')的每个元素的第一个实例的位置(即第一个的位置) a,第一个b等。)

使用

which(y %in% x) 

将只返回所有实例而不是第一个实例。另一种方法是遍历x中的所有元素xi并使用

min(which(y == xi))

有没有办法在不使用x中的元素的for循环的情况下执行此操作?我在stackoverflow上发现了几个关于如何在列表中找到单个元素的第一个实例的查询,但没有找到多个元素的查询。

1 个答案:

答案 0 :(得分:0)

我会使用map包中的purrr函数来执行此操作:

indices <- purrr::map(x, function(i){
  min(which(y == i))
})