Как проверить, содержит ли строка римские цифры в 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" также будет отмечена как римская цифра. Вы можете объединить мой подход с этим ответом для дальнейшего тестирования, если символы находятся в правильном порядке.

Пожалуйста, проверьте свои данные и сообщите, если это работает.

Другие вопросы по тегам