R gsub 单双引号

R gsub a single double quotation mark

我在数据框中有一个字符串字段都类似于:

"Young Adult – 8-9"" 

里面的单曲 " 是我想要替换的,什么也得不到:

"Young Adult - 8-9"

我该怎么做?我试图用双反斜杠转义:

gsub("\"", "", string)

但出现此错误:错误:"gsub("\"", ""

中出现意外的字符串常量

您不需要在正则表达式中转义双引号。只需使用 "\""'"' 来匹配单个双引号。

s = "Young Adult – 8-9\""
s
[1] "Young Adult – 8-9\""
gsub("\"", "", s)
[1] "Young Adult – 8-9"
gsub('"', "", s)
[1] "Young Adult – 8-9"

this IDEONE demo

注意:因为你想删除一些文字文本,你甚至不需要正则表达式,使用fixed=TRUE参数来加速操作:

gsub('"', "", s, fixed=TRUE)

当您在 .R script 文件中保存带有 “”gsub 时,“” 将保存为 "

gsub("[“”]", "", s) # Doesn't work when you save this piece of code in a script

绕过解决方案首先规范化双引号

x <- proustr::pr_normalize_punc(your_data_frame, your_column_name) %>%
     mutate(your_column_name = gsub('\"','', your_column_name))

你可以猜到 proustr::pr_normalize_punc 将所有 “” 转换为 \"