I would have thought that all 4 of the following
would give the same result (the first):
   > gsub("backslash-X", "\\X", "this is a backslash-X", fixed=T)
   [1] "this is a \\X"
   > gsub("backslash-X", "\\X", "this is a backslash-X", extended=F)
   [1] "this is a X"
   > gsub("backslash-X", "\\X", "this is a backslash-X", extended=T)
   [1] "this is a X"
   > gsub("backslash-X", "\\X", "this is a backslash-X", perl=T)
   [1] "this is a X"
If fixed==F the first "\\" is ignored except if it is followed by a
digit.  In particular, the replacement string must use "\\\\" to insert
a backslash and "\\" by itself is the same as "".  When fixed==T,
replacement="\\" means to insert a backslash.

I've seen code in package:gdata that depends on this behavior but I did
not see it described in help(gsub).  It describes using
replacement="\\<digit>" to put a matched subpattern into the output,
but not the fact that replacement="\\<nondigit>" is equivalent to
replacement="<nondigit>" (but only when fixed==F).

Is that intended or is the help file incomplete?  I'd like to
get Splus's gsub/substituteString in line with R's.

----------------------------------------------------------------------------
Bill Dunlap
Insightful Corporation
bill at insightful dot com
360-428-8146

 "All statements in this message represent the opinions of the author and do
 not necessarily reflect Insightful Corporation policy or position."

______________________________________________
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel

Reply via email to