'Extract info inside parenthesis in R

I have some rows, some have parenthesis and some don't. Like ABC(DEF) and ABC. I want to extract info from parenthesis:

  • ABC(DEF) -> DEF
  • ABC -> NA

I wrote

gsub(".*\\((.*)\\).*", "\\1",X).

It works good for ABC(DEF), but output "ABC" when there is not parenthesis.



Solution 1:[1]

Using string_extract() will work.

library(stringr) 

df$`new column` <- str_extract(df$`existing column`,  "(?<=\\().+?(?=\\))")

This creates a new column of any text inside parentheses of an existing column. If there is no parentheses in the column, it will fill in NA.

The inspiration for my answer comes from this answer on the original question about this topic

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 lowVariance