模式 (g)sub = 列 (R) 中的字符串
Pattern (g)sub = a string within a column (R)
我已经搜索了很长时间,但我无法弄清楚如何替换字符串的内容,其中模式是列中的字符串并且每一行都不同。所以我有这些数据:
var1 var2 var3
"Sentence 1 is exiting, isnt it?" "exiting"
"Sentence 2 is boring, isnt it?" "boring"
我最终想要这个:
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?"
所以在每一行中都有另一个模式需要替换。如果我这样做 var3 = gsub(var2, "", var1) 我得到一个错误,因为 var2 不是一个表达式。
谁能帮帮我?
使用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="")
mapply
将函数 gsub
应用于 pattern
和 x
的第一个元素,然后应用于第二个元素,依此类推。
我已经搜索了很长时间,但我无法弄清楚如何替换字符串的内容,其中模式是列中的字符串并且每一行都不同。所以我有这些数据:
var1 var2 var3
"Sentence 1 is exiting, isnt it?" "exiting"
"Sentence 2 is boring, isnt it?" "boring"
我最终想要这个:
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?"
所以在每一行中都有另一个模式需要替换。如果我这样做 var3 = gsub(var2, "", var1) 我得到一个错误,因为 var2 不是一个表达式。
谁能帮帮我?
使用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="")
mapply
将函数 gsub
应用于 pattern
和 x
的第一个元素,然后应用于第二个元素,依此类推。