2012-01-17 5 views
25

grepは反転引数を持ちますが、greplは表示されません。grepl:パターンが含まれていない文字列内での検索

私はどのように私は "XYX" を含まない年齢> 60とID のためにサブセットすることができます2つのフィルタ

data$ID[grepl("xyx", data$ID) & data$age>60] 

を使用するためのサブセットたいですか?私がしたことは、明らかにうまくいくが、ひどくて直感的ではないように見える。

data$ID[abs(grepl("xyx", data.frame$ID)-1) & data$age>60] 

より良い解決策/議論がありますか?論理ベクトルを返すgrepl

おかげ

答えて

41

。反対の結果が必要な場合は、!演算子を使用できます。

data$ID[!grepl("xyx", data$ID) & data$age>60] 
+0

美しく見えます。ありがとうございました。 – ECII

+0

ようこそ。 'invert = TRUE'ではなく'! 'と打つだけでいいのですか? ;-) –

+0

(abs() - 1)と比較して、ソール '!'あなたが20k +の評判を持つ専門家の一人が多少の時間を見つけ、Rの文字列操作についての良いレビュー投稿を書くかもしれません。ちょうどジョランが*家族をここに適用したのと同じようにhttp://stackoverflow.com/questions/3505701/r-grouping-functions-sapply-vs-lapply-vs-apply-vs-tapply-vs-by-vs-aggrega – ECII

関連する問題