Seni
Seni

Reputation: 115

R: Remove string from within another string?

I have data that looks like

Var1
----------------------
text 1 (str to remove)
----------------------
text 2 (str to remove)
----------------------
text 3 (str to remove)
----------------------

I want to remove

" (str to remove)" 

So that the output looks like

Var1
----------------------
text 1
----------------------
text 2
----------------------
text 3
----------------------

I have tried gsub and str_replace but I guess they only work with regex patterns?

Upvotes: 2

Views: 622

Answers (1)

akrun
akrun

Reputation: 887148

We match one or more spaces (\\s+) followed by the ( and the rest of the characters (.*) and replace with blank for the 'Var1' column and assign back to the data

df1$Var1 <- sub("\\s+\\(.*", "", df1$Var1)

If the string is fixed, then we can also do

df1$Var1 <- sub(" (str to remove)", "", df1$Var1, fixed = TRUE)

data

df1 <- structure(list(Var1 = c("text 1 (str to remove)", 
"text 2 (str to remove)", 
"text 3 (str to remove)")), class = "data.frame",
 row.names = c(NA, 
-3L))

Upvotes: 1

Related Questions