[R] Flummoxed by gsub().

William Dunlap wdunlap at tibco.com
Thu Aug 24 00:58:50 CEST 2017


Note that the "doubled brackets" are not essential to this usage.
[:characterClass:] is recognized inside of square brackets as a shortcut
for listing a bunch of characters.  You can mix it with other characters or
character classes inside a set of square brackets.

E.g., the following pattern matches letters, digits, and the dollar and
percent signs.

> gsub("[$[:alpha:]%[:digit:]]", "-", c("$6 is 50% of $12.00"))
[1] "-- -- --- -- ---.--"


Bill Dunlap
TIBCO Software
wdunlap tibco.com

On Wed, Aug 23, 2017 at 3:39 PM, Rolf Turner <r.turner at auckland.ac.nz>
wrote:

> On 24/08/17 02:46, Bert Gunter wrote:
>
>> Inline.
>>
>> -- Bert
>>
>>
>> Bert Gunter
>>
>> "The trouble with having an open mind is that people keep coming along
>> and sticking things into it."
>> -- Opus (aka Berkeley Breathed in his "Bloom County" comic strip )
>>
>>
>> On Wed, Aug 23, 2017 at 2:29 AM, Rolf Turner <r.turner at auckland.ac.nz>
>> wrote:
>>
>>>
>>> On 23/08/17 18:33, Stefan Evert wrote:
>>>
>>>
>>>> On 23 Aug 2017, at 07:45, Rolf Turner <r.turner at auckland.ac.nz> wrote:
>>>>>
>>>>> My reading of ?regex led me to believe that
>>>>>
>>>>>      gsub("[:alpha:]","",x)
>>>>>
>>>>> should give the result that I want.
>>>>>
>>>>
>>>>
>>>> That's looking for any of the characters a, l, p, h, : .
>>>>
>>>
>>>
>>> OK.  I see that now.  I don't think that it's really stated anywhere
>>> that to
>>> search for (and possibly change) any one of a string of characters you
>>> enclose that string of characters in brackets [  ].
>>>
>>> The first example from ?grep makes this "clear" (for some value of the
>>> word
>>> "clear") once you understand what this example is on about.
>>>
>>> So it's "obvious" once you've been shown, and totally opaque until then.
>>>
>>
>> Well, "obviousness" is in the mind of the beholder, but, from ?regexp:
>>
>> "A character class is a list of characters enclosed between [ and ]
>> which matches any single character in that list; "... (at the end of
>> the above section)
>>
>> "For example, [[:alnum:]] means [0-9A-Za-z] "...
>>
>> Note the doubled brackets. So seems pretty explicit to me.
>>
>
> Well, yes.  Once it's pointed out it's "obvious".  But it's buried pretty
> deeply in a large mass of text, and I didn't see it until you pointed it
> out.
>
> If *I* had written the help file, it would be much more perspicuous.
>
> cheers,
>
> Rolf
>
> --
> Technical Editor ANZJS
> Department of Statistics
> University of Auckland
> Phone: +64-9-373-7599 ext. 88276
>
> ______________________________________________
> R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide http://www.R-project.org/posti
> ng-guide.html
> and provide commented, minimal, self-contained, reproducible code.
>

	[[alternative HTML version deleted]]



More information about the R-help mailing list