用Gsub替换不完整的支架

时间:2017-10-13 16:45:21

标签: r gsub

我想在R中对以下列进行简单替换:

df

                                                                        Songs
1                                                      Saga (Skit) [feat. RZA
2                                                                     Revenge
3                                                           Whatever You Want
4                                                               What About Us
5                                                              But We Lost It
6                                                                     Barbies

我想做两个不同的替换:

1)将“[”替换为空白

2)将“]”替换为空白

需要单独执行此操作,因为我的某些值在括号上只有1,就像Songs列中的第一个值一样。

df[,1]<-gsub("[","",df[,1])

错误:

Error in gsub("[", "", newdf2[, 1]) : 
  invalid regular expression '[', reason 'Missing ']''

如何绕过这个无效的正则表达式错误?

谢谢!

2 个答案:

答案 0 :(得分:2)

[是元字符,因此需要进行转义

gsub("\\[|\\]", "", df$Songs)

或其他方式是

gsub("[][]", "", df$Songs)

答案 1 :(得分:2)

有时你必须在R中双重逃避。这应该可以一次性完成两个替换。

gsub("\\[|\\]", "", df$Songs)