作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的数据集“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]
我们正在寻找的“单词”只能由用于罗马数字的符号组成。据我所知应该就这些了。</p>
ignore.case = FALSE
这是省略该选项时通常设置的标准。然而,我发现如果它对于当前的操作很重要,那么明确提及它会更安全。
请谨慎使用,因为一家名为“LCD Industries”的公司也会被标记为罗马数字。您可以将我的方法与 this answer 结合起来进一步测试符号的顺序是否正确。
请测试您的数据并报告其是否有效。
关于r - 如何在R中检查字符串是否包含罗马数字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49147890/
我是一名优秀的程序员,十分优秀!