2016-03-23 11 views
0

私は、テロリストの事件(観測)を担当する異なるグループ名からなる変数を持っています。greplを使ってRの検索クエリに例外を追加する方法

この変数に「共産主義者」という単語が含まれているすべての観測を除外したいと思います。グループ名=「バングラデシュ共産党」などは、ここでは、このことのために私のコードですべての場合除外する:

newdata <- olddata[!grepl("Communist", olddata$groupname),] 

をしかし、私は、このルールに例外を追加する:すべての「反共」グループはに残るべきデータフレーム。だからコードは "バングラデシュ共産党"を取り除くべきだ。 "反共産主義反政府勢力"

正規表現は使用しますか?または、この種のパターンマッチングに例外を追加する方法がありますか?私は最終的に次のように見えるはずです:

newdata <- olddata[!grepl("Communist"[but exclude "Anti-Communist"], olddata&groupname),] 

ありがとう!

答えて

0

あなたはnegative look behindを使用することができます。

x <- c("Bangladesh Communist Party", "Anti-Communist Rebels") 
!grepl("(?<!Anti-)Communist", x, perl = TRUE) 
# [1] FALSE TRUE 
+0

おかげでたくさん!それは魅力のように働いた! :) – eylemyap

関連する問題