Bonjour,
Voici une liste de numéros de communes : Txt <- c('09814','12001','01120','01001','98025','99124','23178).
Dans cette liste, les vrais numéros des communes 98025 et 99124 sont 2A025 et 2B124 (Communes de Corse)
Pour leur restituer leurs vrais numéros, j'utilise la fonction gsub :
gsub("^98(...)$","2A\\1",Txt) dans le 1er cas
gsub("^99(...)$","2B\\1",Txt) dans le second.
Dans ces deux instructions, le paramètre \1 désigne les trois caractères qui ont matché dans la reconnaissance du texte, et qui sont restitués ensuite, préfixés par 2A ou 2B.
Je souhaiterais faire ces deux opérations en une seule fois, du genre : gsub("^9[8|9](...)$","2([A|B])\\1",Txt).
Cette instruction ne me donne pas le résultat souhaité, parce que j'obtiens 2([A|B])025 et 2([A|B])124.
En fait, je ne sais pas comment faire comprendre à la fonction gsub qu'il faut remplacer 98 par 2A et 99 par 2B.
Certes, je cherche un peu du poil aux oeufs ; mais quelqu'un saurait-il si une solution existe ?
Partager