模式(g)sub =列中的字符串(R)

W. *_*ooi 0 string r gsub dataframe

我现在正在寻找很长一段时间,但我无法弄清楚如何替换字符串的实体,其中模式是列中的字符串,并且每行都不同.所以我有这些数据:

         var1                         var2                var3
"Sentence 1 is exiting, isnt it?"  "exiting"         
"Sentence 2 is boring, isnt it?"   "boring"
Run Code Online (Sandbox Code Playgroud)

我最终想要这个:

         var1                        var2                   var3
"Sentence 1 is exiting, isnt it?"  "exiting"         "Sentence 1 is, isnt it?"
"Sentence 2 is boring, isnt it?"   "boring"          "Sentence 2 is, isnt it?"
Run Code Online (Sandbox Code Playgroud)

因此,在每一行中都有另一种需要替换的模式.如果我做var3 = gsub(var2,"",var1)我得到一个错误,因为var2不是一个表达式.

谁能帮我?

use*_*617 5

使用mapply:

df <- data.frame(var1= c("Sentence 1 is exiting, isnt it?","Sentence 2 is boring, isnt it?"), var2=c("exiting","boring"))


df$var3 <- mapply(gsub, pattern=df$var2, x=df$var1, replacement="")
Run Code Online (Sandbox Code Playgroud)

mapply该函数适用gsub于的第一个元素patternx,然后到第二元件等