Несколько месяцев назад я закончил с подчиненным утверждением, которое первоначально работало с моими входными данными.С тех пор он перестал работать, заставив меня пересмотреть мой уродливый процесс.Я не хочу делиться этим, но он выполнил несколько вещей одновременно:
active$id[grep("CIR",active$description)] <- sub(".*CIR0*(\\d+).*","\\1",active$description[grep("CIR",active$description)],perl=TRUE)
Этот оператор создал новый столбец идентификатора, найдя строки, в которых идентификатор был встроен в столбце описания.Оператор sub найдет номер, следующий за «CIR0», и заполнит столбец id, если в описании строки будет идентификатор.Я признаю, что это неэффективно со встроенным поднабором grep по обе стороны от назначения.
Есть ли способ сделать замену 'sub' NA или пустым, если шаблон не совпадает?Я чувствую, что упускаю что-то очень простое, но прошу помощи сообщества.Спасибо.
Пример с результатами создания столбца id:
| name | id | description |
|------+-----+-------------------|
| a | 343 | Here is CIR00343 |
| b | | Didn't have it |
| c | 123 | What is CIR0123 |
| d | | CIR lacks a digit |
| e | 452 | CIR452 is next |