[R] removing part of a string

Rui Barradas ru|pb@rr@d@@ @end|ng |rom @@po@pt
Mon May 21 16:28:13 CEST 2018


Hello,

Ulrik's way is simpler therefore better. I would use it, not mine.

As for an explanation of mine, here it goes.

1) Parenthesis are meta-characters and must be escaped if you want to 
match them:

\\(  and  \\)

2) You want to keep them so I used groups, i.e., put what you want 
between parenthesis (these serve a different purpose, they will not be 
matched).

(\\()  and (\\))  are group \1 and group \2

3) remove everything between the two groups:

.*

4) combine all:

(\\().*(\\))  is the pattern to match

The replacement is \\1\\2

Ulrik's pattern is simpler, no groups, just \\( and \\) with .* between 
them, replaced by ()

Hope this helps,

Rui Barradas

On 5/21/2018 3:00 PM, Ulrik Stervbo wrote:
> I would use
> 
> sub("\\(.*\\)", "()", s)
> 
> It is essentially the same as Rui's suggestion, but I find the purpose 
> to be more clear. It might also be a little more efficient.
> 
> HTH
> Ulrik
> 
> On Mon, 21 May 2018, 15:38 Rui Barradas, <ruipbarradas using sapo.pt 
> <mailto:ruipbarradas using sapo.pt>> wrote:
> 
>     Hello,
> 
>     Try this.
> 
> 
>     ss1 <- "z:f(5, a=3, b=4, c='1:4', d=2)"
>     ss2 <- "f(5, a=3, b=4, c=\"1:4\", d=2)*z"
> 
>     fun <- function(s) sub("(\\().*(\\))", "\\1\\2", s)
> 
>     fun(ss1)
>     #[1] "z:f()"
> 
>     fun(ss2)
>     #[1] "f()*z"
> 
> 
>     Hope this helps,
> 
>     Rui Barradas
> 
>     On 5/21/2018 2:33 PM, Vito M. R. Muggeo wrote:
>      > dear all,
>      > I am stuck on the following problem. Give a string like
>      >
>      > ss1<- "z:f(5, a=3, b=4, c='1:4', d=2)"
>      >
>      > or
>      >
>      > ss2<- "f(5, a=3, b=4, c=\"1:4\", d=2)*z"
>      >
>      > I would like to remove all entries within parentheses.. Namely, I
>     aim to
>      > obtain respectively
>      >
>      > "z:f()" or "f()*z"
>      >
>      > I played with sub() and gsub() but without success..
>      > Thank you very much for your time,
>      >
>      > best,
>      > vito
>      >
>      >
> 
>     ______________________________________________
>     R-help using r-project.org <mailto: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.
>




More information about the R-help mailing list