Re: [R] simultaneous actions of grep ???

From: Marc Schwartz <marc_schwartz_at_comcast.net>
Date: Mon, 25 Jun 2007 12:06:23 -0500

On Mon, 2007-06-25 at 11:58 -0500, Marc Schwartz wrote:
> On Mon, 2007-06-25 at 17:15 +0100, Ana Patricia Martins wrote:
> > Hello R-users and developers,
> >
> > Once again, I'm asking for your help.
> >
> > There is other way to do the same more easily for applied simultaneous
> > grep???
> >
> > c<-subset(c,!rownames(c) %in% grep(".1",rownames(c),value=T))
> > c<-subset(c,!rownames(c) %in% grep(".5",rownames(c),value=T))
> > c<-subset(c,!rownames(c) %in% grep(".6",rownames(c),value=T))
> > c<-subset(c,!rownames(c) %in% grep(".99999",rownames(c),value=T))
> >
> > Thanks in advance for helping me.
>
> One question might be what other possible values can the rownames take.
>
> For example, if you want to check for '.99999', but not for other values
> containing a '9' after the decimal, something like the following should
> work:
>
> sub.c <- subset(c,
> !rownames(c) %in%
> grep("\\.([156])|([9]{5})", rownames(c),
> value = TRUE))
>
> Otherwise, if you want to include anything with a '9' after a decimal,
> the following would work:
>
> sub.c <- subset(c,
> !rownames(c) %in%
> grep("\\.[1569]", rownames(c), value = TRUE))
>
>
> See ?regex and the information there for some additional guidance. There
> are also many regex references online, such as:
>
> http://www.regular-expressions.info/
>
> BTW, it would be preferable not to use 'c' to name an object in R, since
> c() is a function. While conflicts should, in general, not occur, it
> eliminates such risk and makes for more easily readable code to not use
> function names for objects.

Quick possible correction:

I mis-read the regex as containing a decimal, which would need to be escaped as I had.

If your use of the '.' is to refer to any character, then the following would be correct:

sub.c <- subset(c,

                !rownames(c) %in% 
                grep(".([156])|([9]{5})", rownames(c), 
                     value = TRUE))

or

sub.c <- subset(c,

                !rownames(c) %in% 
                grep(".[1569]", rownames(c), value = TRUE))


Sorry for the confusion.

Marc



R-help_at_stat.math.ethz.ch mailing list
https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code. Received on Mon 25 Jun 2007 - 17:26:40 GMT

Archive maintained by Robert King, hosted by the discipline of statistics at the University of Newcastle, Australia.
Archive generated by hypermail 2.2.0, at Mon 25 Jun 2007 - 18:32:25 GMT.

Mailing list information is available at https://stat.ethz.ch/mailman/listinfo/r-help. Please read the posting guide before posting to the list.