如何检查字符串中是否包含R中的罗马数字?
我在我的数据集“ad”中有一个住宅地址栏。我想检查没有数字(包括罗马数字)的地址。 我正在使用如何检查字符串中是否包含R中的罗马数字?,r,regex,text-analysis,roman-numerals,R,Regex,Text Analysis,Roman Numerals,我在我的数据集“ad”中有一个住宅地址栏。我想检查没有数字(包括罗马数字)的地址。 我正在使用 ad$check <- grepl("[[:digit:]]",ad$address) ad$check您需要创建一个正则表达式字符串 编辑(我的第一个答案是胡说八道): x地址列中的结构是否相同?例如,它总是在一楼、一栋楼、一座城市吗?数字后面是逗号吗?可能会有帮助不,它不是同质的。数字后面可以跟逗号,也可以不跟逗号。它可以是“III DLF席楼”,正如你所说,它将取决于数据,但空白可能是解
ad$check <- grepl("[[:digit:]]",ad$address)
ad$check您需要创建一个正则表达式字符串
编辑(我的第一个答案是胡说八道):
x地址列中的结构是否相同?例如,它总是在一楼、一栋楼、一座城市吗?数字后面是逗号吗?可能会有帮助不,它不是同质的。数字后面可以跟逗号,也可以不跟逗号。它可以是“III DLF席楼”,正如你所说,它将取决于数据,但空白可能是解决方案。例如,数据包含非罗马数字的“V”的可能性远远高于是否包含非罗马数字的“V”。上述检查适用于所有地址(无论它们是否有罗马数字)。若一个地址包含罗马数字,它的前后都会有空格。第一个答案是胡说八道。我链接的答案与字母的顺序有关,而不是它们是否在一个字符串中。新答案应该有效,并在您给出的示例上进行了测试,我添加了一个没有罗马数字的示例。
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