expression régulière à l'exclusion de mot dans la R

Je ne sais pas vraiment comment bien trouver des mots à l'aide de non-correspondance d'expression régulière dans la R

Par exemple: les données incluent:

x =  c("hail", "small hail", "wind hail",  "deep hail",  "thunderstorm hail", "tstm wind hail", "gusty wind hail", "late season hail", "non severe hail", "marine hail")

Je veux trouver tous les obs avoir "grêle", mais n'avoir "marine"

Ma tentative:

x[grep("[^(marine)] hail", x)]

-> je n'ai que 5:

"small hail"      "wind hail"       "deep hail"       "tstm wind hail"  "gusty wind hail"

Je ne sais pas ce qui se passe avec les 4 autres

x[grepl("hail", x) & !grepl("marine", x)] pourrait être plus intuitive
Vous êtes le meilleur, Richard. Très intuitif

OriginalL'auteur Duy Bui | 2015-01-16