R:查找列表中每个唯一项的索引

时间:2013-08-12 21:07:15

标签: r

我有一长串重复的字符串 - 这是一些玩具数据,

unique_items <- c('shoes', 'shirt', 'pants', 'socks')
l <- unique_items[sample(1:4, 100000, replace = TRUE)]

我现在想在unique_items中找到每个项目的所有索引。

一个天真的解决方案是:

item_indices <- vector(mode = 'list', length = length(unique_items))
names(item_indices) <- unique_items
for (idx in 1:length(unique_items))
{
  item <- unique_items[idx]
  item_indices[[item]] <- which(l == item)
}

然而,当我有一个庞大的名单时,这是非常缓慢的。

有更快的方法吗?

1 个答案:

答案 0 :(得分:5)

item_indices <- split(seq_along(l), l)