regex - 删除由字符串组成的行

标签 regex r

我有一列应该只包含数字,但其中也有字符或其他符号。 R 将特征 Housenumber 视为一个字符。

例如:

Housenumber 
1
14
5
at5
53.!
boat

我想知道我可以编写什么样的函数来识别不只包含数字的行并将其删除?

Housenumber 
1
14
5

最佳答案

df[length(grep("[^[:digit:]]", df$Housenumber, value=F)) == 0, ]

解释:

正则表达式 [^[:digit:]] 将匹配任何 数字字符,例如您要去除的其他字符和符号。

电话

grep("[^[:digit:]]", df$Housenumber, value=F)

如果找到匹配项,将返回包含 Housenumber 列的第一个索引的向量。因此,如果未找到匹配项,则此向量的长度将为零,这意味着您要保留该行。

在这种特殊情况下,我更喜欢@akrun 给出的答案,但我的答案也适用于使用任何类型的正则表达式过滤行的一般情况。

关于regex - 删除由字符串组成的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39247583/

相关文章:

r - “rep”函数(R)中的“每个”自变量有多个值?

ruby - 如何匹配 URL 但从匹配中排除终止符?

regex - 库斯托 : extract unique words in text

Javascript 正则表达式修饰符

Python:跨文件 block 边界的正则表达式匹配

SQL Server 正则表达式

r - 如何只保留连续第一次出现的重复项?

r - ggplot2:在绘图顶部添加二次变换的 x 轴

R 找不到要用于绘图的字体

r - 使用谷歌地图按公司名称查找坐标