如何从数据框中的列中删除文本[start section id =“20107”]

时间:2015-10-22 07:59:19

标签: r string grep substitution gsub

我正在尝试删除数据框中每列单元格中显示的字符串[start section id="20107"]

我已经尝试df1$Col1<- gsub("[start section id="20107"]", "", df1$Col1),但我收到了错误unexpected numeric constant in df1$Col1<- gsub("[start section id="20107",不确定我还能尝试什么,感谢任何帮助人员。

[start section id="20107"]

(11-Feb-2013 13:22 DK04)
#1 Preventive exam
#2 Mild hyperlipidemia
#3 Hyperglycemia
#4 Peripheral neuropathy

2 个答案:

答案 0 :(得分:5)

gsub需要正则表达式,因此[被视为特殊的regex-char。使用fixed = TRUE。此外,您必须使用\转义引号,因此如果您在字符串中有\",请使用"

df1 <- data.frame(Col1 = "fdsfd [start section id=\"20107\"]")
df1$Col1<- gsub("[start section id=\"20107\"]", "", df1$Col1, fixed = TRUE)

使用fixed = TRUE,您的搜索模式被视为“普通字符串”,而不是正则表达式。

答案 1 :(得分:2)

由于嵌套的双引号,pattern中的gsub搞砸了。 要么绕过数字周围的引号,要么在模式周围使用单引号。也可以使用fixed = TRUE,因为您没有尝试匹配正则表达式而是修复模式。

gsub('[start section id="20107"]', "", df1$Col1, fixed = TRUE)