我的数据集“ad”中有一个住宅地址列。我想检查没有数字(包括罗马数字)的地址。
我在用着
ad$check <- grepl("[[:digit:]]",ad$address)
标记出不存在数字的地址。如何对包含罗马数字的地址执行相同的操作?
例如:“ABC City DLF Building- III X 楼”
您需要创建一个正则表达式字符串。
编辑(我的第一个答案是废话):
x <- c("floor Imaginary, building- Momentum, ABC City", "floor X, DLF Building- III, ABC City")
# here come the regex
grepl("\\b[I|V|X|L|C|D|M]\\b", x, ignore.case = FALSE)
[1] FALSE TRUE
分解它:
\\b
是单词边界。这意味着罗马数字前面或后面必须有空格、标点符号或字符串的开头/结尾。
[I|V|X|L|C|D|M]
我们正在寻找的“单词”只能由用于罗马数字的符号组成。据我所知应该就是这些了。
ignore.case = FALSE
如果省略该选项,这是通常设置的标准。然而,我发现如果它对于手头的操作很重要,那么明确提及它会更安全。
请谨慎使用,因为一家名为“LCD Industries”的公司也会被标记为罗马数字。你可以将我的方法与这个答案 https://stackoverflow.com/a/267405/5028841进一步测试符号的顺序是否正确。
请测试您的数据并报告是否有效。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)