[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