Используя Adobe Acrobat Pro для преобразования таблицы PDF в Excel, которая затем читалась в R, я исправляю все элементы столбца (скажем, ID), чтобы они соответствовали тому, что было изначально в PDF, потому что преобразование создало некоторые проблемы.(то есть 5 стало S, 8 стало B или S, 0 O и D поменялись местами, 6 стало 0, я стал 1, были добавлены пробелы и т. д.) До сих пор я использовал регулярное выражение, чтобы исправить все элементы, а некоторые не могутисправить, кроме как вручную, и заново создать лист Excel с исправлениями.Это ежемесячный проект, и в будущем могут возникнуть ошибки.Я хочу создать регулярное выражение, чтобы найти что-то, что все еще не соответствует желаемому шаблону, и добавить маркер (то есть%, или?, Или!)
Требуемый шаблон следует шаблону XYY, где X - [AT] и Y равны [0-2] и [0-9] соответственно.Самый низкий уровень А01, самый высокий уровень Т25.Я хочу найти все, что находится за пределами этого «диапазона» или все еще неверно, и добавить маркер.До сих пор я пытался сделать следующее.Я не могу предоставить данные в целях конфиденциальности.
Вот пример, который должен донести смысл.
mydf <- data.frame(ID = c("A01", "J31", "K24", "L12", "T26", "810"))
mydf$ID <- gsub("(^[^A-T][02][0-9])", "\\1!", mydf$ID)
но это ничего не дает.Я также попытался использовать это:
!grepl("^[A-T][0-2][0-9]$", mydf$ID)
Тогда я мог бы отметить все идентификаторы, которые являются неправильными.Он обнаруживает, что J31 и 810 неверны, но пропускает T26 как неправильный идентификатор.
Можно предположить, что все идентификаторы будут одинаковой длины, 3 символа.Требуется код R.