Замените однозначные числа (1 или 5B) в строке двумя цифрами (01 или 05B) - PullRequest
1 голос
/ 21 ноября 2019

Предположим следующий вектор символов с несовместимым числовым форматом:

myvec <- c( '50% of population live in block 50 number 27-04', 
'And 1% of population live in block 8 number 1-42', 
'And 1% of population live in block 5B number 1-8', 
'60% of population live in block 1641 number 17-23',
'80% of population live in block 677B number 5-3')

Я хочу иметь согласованный числовой формат так, чтобы каждое число имело как минимум две цифры:

c( '50% of population live in block 50 number 27-04', 
'And 01% of population live in block 08 number 01-42', 
'And 01% of population live in block 05B number 01-08', 
'60% of population live in block 1641 number 17-23',
'80% of population live in block 677B number 05-03')

Если проще получить все цифры до 4 цифр (макс. Количество цифр), это также будет нормально:

c( '0050% of population live in block 0050 number 0027-0004', 
'And 0001% of population live in block 0008 number 0001-0042', 
'And 0001% of population live in block 0005B number 0001-0008', 
'0060% of population live in block 1641 number 0017-0023',
'0080% of population live in block 0677B number 0005-0003')

Важно, чтобы все числа с одинаковым количеством цифр имели одинаковый формат. В конце я хочу прочитать блок и номер (например, «блок 50 номер 27-04») и проверить наличие дубликатов (фактический вектор намного длиннее и состоит из дубликатов в блоке и номере, но с другим текстом перед этим) -что я не могу в данный момент, так как начало строки может отличаться.

Я попробовал несколько вещей, таких как gsub("(\\d)+", "0\\1", myvec), но они не сработали.

Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...