[R] Removing a space from a string

Bert Gunter bgunter@4567 @end|ng |rom gm@||@com
Wed Jul 29 02:06:02 CEST 2020


Note that my previous strategy can be expressed slightly more clearly as:

x <- c("STRING 01.  Remainder of the string",
"STR ING 01.  Remainder of the string",
"STRIN G 01.  Remainder of the string",
"STR  IN G 01.  Remainder of the string") ## more spaces in this last
example entry

rx <- "([^[:digit:]]+)([[:digit:]]+.+)"

> gsub(" ","",gsub(rx,"\\1",x))
[1] "STRING" "STRING" "STRING" "STRING"

> gsub(rx,"\\2",x)
[1] "01.  Remainder of the string" "01.  Remainder of the string"
[3] "01.  Remainder of the string" "01.  Remainder of the string"

Bert Gunter




On Tue, Jul 28, 2020 at 2:53 PM Bert Gunter <bgunter.4567 using gmail.com> wrote:

> 1. Thanks for the nice reprex.
> 2. However, I thought there was still a bit of ambiguity. I interpreted
> your specification to mean: "any number of spaces could occur in the
> beginning alphabetic part of the strings before one or more digits occur
> followed by a '.' (a period) and then more stuff after."
> 3. My strategy was simply to split the strings into the first part
> consisting of the alphabetic characters and spaces and the second part with
> the numbers and everything else. Then I just removed the spaces in the
> first part. You can then concatenate them together again (using paste())
> however you like. Thus
>
>  >x
> [1] "STRING 01.  Remainder of the string"  "STR ING 01.  Remainder of the
> string"
> [3] "STRIN G 01.  Remainder of the string"
> > p1 <-gsub(" ","",gsub("([^[:digit:]]+)[[:digit:]]+\\..*$","\\1",x))
> > p2 <- gsub("[^[:digit:]]+([[:digit:]]+\\..*$)","\\1",x)
> > p1
> [1] "STRING" "STRING" "STRING"
> > p2
> [1] "01.  Remainder of the string" "01.  Remainder of the string"
> [3] "01.  Remainder of the string"
>
> I look forward to better approaches using basic regex's (no additional
> packages), however.
>
>
> 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 Tue, Jul 28, 2020 at 1:20 PM Dennis Fisher <fisher using plessthan.com>
> wrote:
>
>> R 4.0.2
>> OS X
>>
>> Colleagues
>>
>> I have strings that contain a space in an unexpected location.  The
>> intended string is:
>>         “STRING 01.  Remainder of the string"
>> However, variants are:
>>         “STR ING 01.  Remainder of the string"
>>         “STRIN G 01.  Remainder of the string"
>>
>> I would like a general approach to deleting a space, but only if it
>> appears before the period.  Any suggestions on a regular expression for
>> this?
>>
>> Dennis
>>
>> Dennis Fisher MD
>> P < (The "P Less Than" Company)
>> Phone / Fax: 1-866-PLessThan (1-866-753-7784)
>> www.PLessThan.com <http://www.plessthan.com/>
>>
>>
>>
>>
>>
>>         [[alternative HTML version deleted]]
>>
>> ______________________________________________
>> R-help using 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/posting-guide.html
>> and provide commented, minimal, self-contained, reproducible code.
>>
>

	[[alternative HTML version deleted]]



More information about the R-help mailing list