[R] simultaneous actions of grep ???

Stephen Tucker brown_emu at yahoo.com
Tue Jun 26 08:04:42 CEST 2007


You can list them together using "|" (which stands for 'or'):

  c<-subset(c,!rownames(c) %in% grep(".1|.5|.6|.99999",rownames(c),value=T))

but "." means any character for regular expressions, so if you meant a
decimal place, you probably want to escape them with a "\\":

  c<-subset(c,!rownames(c) %in%
            grep("\\.1|\\.5|\\.6|\\.99999", rownames(c),value=T))

Another option is

  c<-subset(c,regexpr("\\.1|\\.5|\\.6|\\.99999",c) < 0)

because regexpr will return -1 for elements which do not contain a match.


--- Ana Patricia Martins <ana.pmartins at ine.pt> 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.
> 
> Atenciosamente,
> Ana Patricia Martins
> -------------------------------------------
> Serviço Métodos Estatísticos
> Departamento de Metodologia Estatística
> INE - Portugal
> Telef:  218 426 100 - Ext: 3210
> E-mail: ana.pmartins at ine.pt <mailto:ana.pmartins at ine.pt> 
> 
> 
> 	[[alternative HTML version deleted]]
> 
> > ______________________________________________
> 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.
>



More information about the R-help mailing list