[R-SIG-Mac] negation in grep

Steven McKinney smckinney at bccrc.ca
Mon Jun 22 23:03:38 CEST 2009


This appears to be a general R question, not Mac-specific,
so would best be addressed on the general R-help at r-project.org

> -----Original Message-----
> From: r-sig-mac-bounces at stat.math.ethz.ch [mailto:r-sig-mac-
> bounces at stat.math.ethz.ch] On Behalf Of orzack
> Sent: Monday, June 22, 2009 12:15 PM
> To: r-sig-mac at stat.math.ethz.ch
> Subject: [R-SIG-Mac] negation in grep
> 
> Does anybody know how to negate a string in a grep command, i.e., what
> I need is to return only strings that do NOT contain a second string
> anywhere in the entire string.
> 
> 
> for
> 
> txt <- c("boo","goo","doob","foo","boofoo")
> 
> I need a grep command that returns strings with "oo" except when "b"
> is present anywhere. 

The following yields all strings with "oo" except when "b" is
present anywhere:

R> txt[setdiff(grep("oo", txt), grep("b", txt))]
[1] "goo" "foo"


> I know that
> 
> grep("[^b]oo" would work to exclude "boo" and "boofoo" but not "doob"
> 
> So, what I need is
> 
> grep("oo + some syntax", txt)
> 
> should return
> 
> goo doo foo

I don't see "doo" in the example string vector "txt".  
Perhaps there is more to this that I didn't get?

> 
> I have tried
> 
>   grep("oo!boo",txt)
> 
> but it returns character(0).
> any suggestions are much appreciated!
> 
> S.
> --
> Steven Orzack
> 
> 	[[alternative HTML version deleted]]
> 
> _______________________________________________
> R-SIG-Mac mailing list
> R-SIG-Mac at stat.math.ethz.ch
> https://stat.ethz.ch/mailman/listinfo/r-sig-mac



 

 
HTH 

Steven McKinney 



More information about the R-SIG-Mac mailing list