[R] simultaneous actions of grep ???
Prof Brian Ripley
ripley at stats.ox.ac.uk
Tue Jun 26 10:36:06 CEST 2007
On Mon, 25 Jun 2007, Stephen Tucker wrote:
> My mistake... last alternative should be:
>
> c<-subset(c,regexpr("\\.1|\\.5|\\.6|\\.99999",rownames(c)) < 0)
Or, more readably,
c <- subset(c, regexpr("\\.(1|5|6|99999)", rownames(c)) < 0)
>
> --- Stephen Tucker <brown_emu at yahoo.com> wrote:
>
>> 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))
--
Brian D. Ripley, ripley at stats.ox.ac.uk
Professor of Applied Statistics, http://www.stats.ox.ac.uk/~ripley/
University of Oxford, Tel: +44 1865 272861 (self)
1 South Parks Road, +44 1865 272866 (PA)
Oxford OX1 3TG, UK Fax: +44 1865 272595
More information about the R-help
mailing list