假设我有一个列表y,我想返回到另一个列表x = c('a','b','c')的每个元素的第一个实例的位置(即第一个的位置) a,第一个b等。)
使用
which(y %in% x)
将只返回所有实例而不是第一个实例。另一种方法是遍历x中的所有元素xi并使用
min(which(y == xi))
有没有办法在不使用x中的元素的for循环的情况下执行此操作?我在stackoverflow上发现了几个关于如何在列表中找到单个元素的第一个实例的查询,但没有找到多个元素的查询。
答案 0 :(得分:0)
我会使用map
包中的purrr
函数来执行此操作:
indices <- purrr::map(x, function(i){
min(which(y == i))
})