Как проверить, содержит ли строка римские цифры в R?
У меня есть столбец для жилых адресов в моем наборе данных "объявление". Я хочу проверить адреса, которые не имеют чисел (включая римские цифры). я использую
ad$check <- grepl("[[:digit:]]",ad$address)
выделять адреса без цифр. Как мне сделать то же самое с адресами, которые содержат римские цифры?
Например: "этаж X, DLF Building- III, ABC City"
1 ответ
Вам нужно сделать строку регулярного выражения.
Изменить (мой первый ответ был ерундой):
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" также будет отмечена как римская цифра. Вы можете объединить мой подход с этим ответом для дальнейшего тестирования, если символы находятся в правильном порядке.
Пожалуйста, проверьте свои данные и сообщите, если это работает.