r - 如何删除带有特殊字符的行?

标签 r regex dataframe grepl

我想从我的数据框中删除包含左括号“(”的行。

我尝试了以下方法:

df[!grepl("(", df$Name),] 

但这并没有追踪到 ( 标志

最佳答案

您必须使用 \\( 进行两次转义。

x <- c("asdf", "asdf", "df", "(as")

x[!grepl("\\(", x)]
# [1] "asdf" "asdf" "df"  

只需将其应用到您的 df,例如 df[!grepl("\\(", df$Name), ]

您还可以考虑使用正则表达式删除所有标点符号:

x[!grepl("[[:punct:]]", x)]

正如@CSquare 在评论中指出的那样,here is a great summary about special characters in R regex


来自评论的额外输入:
@Sotos:通过 pattern='('fixed = TRUE 获得性能,因为可以绕过正则表达式。

x[!grepl('(', x, fixed = TRUE)]

关于r - 如何删除带有特殊字符的行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45634741/

相关文章:

r - 查看序数 CLMM 模型中每个级别的系数

r - 如何存储多维数据

r - 从数字字符串中检测范围

python - 将逗号分隔字符串的 pandas DataFrame 列转换为单热编码

将值替换为另一个数据帧的值

python - 基于另一个数据帧在数据帧中的特定位置插入多列

R 基于条件的跨列计数

Java 解析字符串

javascript - 使用正则表达式转义代码块内的标记

正则表达式信用卡号测试