3

繰り返し文字列の長いリストがあります。これはおもちゃのデータです。

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)
}

ただし、膨大なリストがある場合、それは非常に遅くなります。

これを行うより速い方法はありますか?

4

1 に答える 1

6
item_indices <- split(seq_along(l), l)
于 2013-08-12T21:18:01.067 に答える