[Rd] grep with fixed=TRUE and ignore.case=TRUE

Prof Brian Ripley ripley at stats.ox.ac.uk
Wed May 9 07:41:23 CEST 2007


On Mon, 7 May 2007, Petr Savicky wrote:

> Dear R developers,
>
> I suggest to modify the behaviour of "grep" function with fixed=TRUE option.
>
> Currently, fixed=TRUE implies ignore.case=FALSE (overrides ignore.case=TRUE,
> if set by the user).

As it clearly says it does.

> I suggest to keep ignore.case as set by the user even if fixed=TRUE. Since
> the default of ignore.case is FALSE, this would not change the behaviour
> of grep, if the user does not set ignore.case explicitly.
>
> In my opinion, fixed=TRUE is most useful for suppressing meta-character
> expansion. On the other hand, for a simple word search, ignoring
> case is sometimes useful.

Well, it was written to use in R's own code as a quick way to match a 
fixed sequence of bytes.  It is not suitable for a 'word' search as it 
does not (just) match to words.

> If for some reason, it is better to keep the current behavior of grep, then I
> suggest to extend the documentation as follows:
>
> ORIGINAL:
>   fixed: logical.  If 'TRUE', 'pattern' is a string to be matched as
>          is.  Overrides all conflicting arguments.
>
> SUGGESTED:
>   fixed: logical.  If 'TRUE', 'pattern' is a string to be matched as
>          is.  Overrides all conflicting arguments including ignore.case.

Oh come on, ignore.case clearly conflicts with 'as is'!
Adding unnecessary qualifiers just makes the text harder to read.


I suggest you collaborate with the person who replied that he thought this 
was a good idea to supply patches against the R-devel sources for 
scrutiny.

-- 
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-devel mailing list