我有一列应该只包含数字,但其中也有字符或其他符号。 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/