nem*_*mja 3 regex r dataframe grepl
我想从我的数据框中删除包含左括号"("的行.
我尝试了以下方法:
df[!grepl("(", df$Name),]
Run Code Online (Sandbox Code Playgroud)
但这并没有追查(标志
你必须仔细逃脱(用\\.
x <- c("asdf", "asdf", "df", "(as")
x[!grepl("\\(", x)]
# [1] "asdf" "asdf" "df"
Run Code Online (Sandbox Code Playgroud)
只需将它应用于你的df就好 df[!grepl("\\(", df$Name), ]
您还可以考虑使用正则表达式删除所有标点字符:
x[!grepl("[[:punct:]]", x)]
Run Code Online (Sandbox Code Playgroud)
正如@CSquare在评论中所指出的,这里是关于R正则表达式中特殊字符的一个很好的总结
:从注释附加输入
@Sotos:以获得性能pattern='('和fixed = TRUE自正则表达式可以被绕过.
x[!grepl('(', x, fixed = TRUE)]
Run Code Online (Sandbox Code Playgroud)