Home > front end >  How to remove paranthesis but keep the text in it in R
How to remove paranthesis but keep the text in it in R

Time:10-23

I am trying to clean a dataset with the column: ltaCpInfoDF$weekdays_rate_1

For some of the rows, I would like to do this:

input: Daily(7am-11pm): $1.20 ; output: 7am-11pm: $1.20

The values within the bracket can be different timings for the rows.

Initially, I was thinking of removing by part such as removing "Daily(" with gsub first then removing ")". However, I seem to be facing issues with that.

ltaCpInfoDF$weekdays_rate_1 <- gsub("Daily(", "", ltaCpInfoDF$weekdays_rate_1)

Here is the error shown:

Error in gsub("Daily(", "", ltaCpInfoDF$weekdays_rate_1) : 
  invalid regular expression 'Daily(', reason 'Missing ')''
In addition: Warning message:
In gsub("Daily(", "", ltaCpInfoDF$weekdays_rate_1) :
  TRE pattern compilation error 'Missing ')''

Could someone share with me a better way? Thank you in advance!

CodePudding user response:

Use sub with a capture group:

input <- "Daily(7am-11pm): $1.20"
output <- gsub("\\S \\s*\\((.*?)\\)", "\\1", input)
output

[1] "7am-11pm: $1.20"

CodePudding user response:

We may use without capturing

gsub("^[^(] \\(|\\)", "", str1)
[1] "7am-11pm: $1.20"

data

str1 <- "Daily(7am-11pm): $1.20"
  • Related