2017-11-12 15 views
0

動詞を含むリストがあります。私は文章を含む別のリストを持っています。その文の動詞リストに少なくとも動詞を含む文リストのインデックスを返すにはどうすればよいですか?他のベクトルに少なくとも1つの文字列を含むベクトルのインデックスを返す方法

verbList <- c("punching", "kicking", "jumping", "hopping") 
sentenceList <- c("I am punching", "I like pineapples", "I am hopping", "I am kicking and jumping") 

私はそれがstringrrebusからインデックス1、3、および4

+1

あなたは文字列とベクトルを持っていますが、リストはありません。 – mtoto

+2

質問を変更すると、回答は意図したとおりに問題に対応しなくなります。 – ssp3nc3r

答えて

2

、:

オリジナル質問:

verbList <- list("punching, kicking, jumping, hopping") 
sentenceList <- c("I am punching", "I like pineapples", "I am hopping", "I am kicking and jumping") 

    v <- gsub(", ", "|", verbList) 
    grep(v, sentenceList) 

新しい問題:

verbList <- c("punching", "kicking", "jumping", "hopping") 
sentenceList <- c("I am punching", "I like pineapples", "I am hopping", "I am kicking and jumping") 
v <- paste(verbList, collapse = "|") 
grep(v, sentenceList) 
+0

verbListが実際にリストであり、文字列ではない場合(私の元の投稿を編集した場合) "OR"を入れる方法はありますか? –

+0

私は理解しており、変更をお詫び申し上げます。私は再びそれを変更しません。あなたがた両方に感謝します! –

2

ソリューションを返すようにしたいです。最初に文字列を分割してから、str_whichを使用して、パターンがベクトル内にあるかどうかを調べてインデックスを返すことができます。次のように私たちは、ソートの "または" 別の検索語が一緒に|を使用することができ、追加のパッケージを使用していない

library(stringr) 
library(rebus) 

# Check the index 
result <- str_which(sentenceList, or1(verbList)) 
result 
# [1] 1 3 4 
関連する問題