2 つのベクトル間のインデックス (論理ベクトルではない) を効率的に見つける必要があります。私はこれを行うことができます:
which(c("a", "q", "f", "c", "z") %in% letters[1:10])
同様に、次のようにして最大数の位置を見つける方が良いですwhich.max
:
which(c(1:8, 10, 9) %in% max(c(1:8, 10, 9)))
which.max(c(1:8, 10, 9))
2 つのベクトルで一致する用語の位置を見つける最も効率的な方法があるかどうか疑問に思っています。
編集:以下の質問/コメントごと。ベクトルのリストを操作しています。問題は、以下に示すように単語の袋に分割された文を操作することです。リストには、10000 ~ 20000 以上の文字ベクトルが含まれる場合があります。次に、そのインデックスに基づいて、インデックスの前の 4 単語と後の 4 単語を取得し、スコアを計算します。
x <- list(c('I', 'like', 'chocolate', 'cake'), c('chocolate', 'cake', 'is', 'good'))
y <- rep(x, 5000)
lapply(y, function(x) {
which(x %in% c("chocolate", "good"))
})