grep with fixed=TRUE and ignore.case=TRUE
Seems like a good idea to me.
Here is a workaround that works in any event which combines (?i), \Q and \E .
to get the same effect. (?i) gives case insensitive matches and \Q and \E
quote and endquote the intervening text disabling special characters:
x <- c("D.G cat", "d.g cat", "dog cat")
z <- "d.g"
rx <- paste("(?i)\\Q", z, "\\E", sep = "")
grep(rx, x, perl = TRUE) # 1 2
On 5/7/07, Petr Savicky <savicky at cs.cas.cz> 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).
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.
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.
All the best, Petr Savicky.
______________________________________________ R-devel at r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel