Passer au contenu

Ajout de positions à gauche

De nombreux codages PMSI sont habituellement sur 2 positions (CMD, CM, numéro de chapitre CIM-10, …).

Ces derniers, selon les sources de données et les traitements effectués, peuvent se retrouver codés sur 1 position sans le 0 à gauche (ex : CMD 1 au lieu du CMD 01 attendue).

On peut alors vouloir rétablir le 0 à gauche.

La fonction str_pad() du package stringr:: du tidyverse est particulièrement adaptée.

cmd_01 <- "1" # cmd_01 is character
cmd_01 <- stringr::str_pad(cmd_01, width = 2, side = "left", pad = "0")
# width = nombre voulu de positions. Ici width = 2
# side = left car on veut ajouter le 0 à gauche
# pad = "0" = le motif que l'on souhaite ajouter
cmd_01
#> [1] "01"

Remarque : on voit là l’intérêt de toujours travailler en character pour ces codages.

Suppression de positions à gauche

Plusieurs variables sortent souvent des fichiers PMSI de production avec des 0 à gauche.

Exemple avec le nombre de DAS sur 2 positions dans chaque RUM : on récupère ainsi “08” pour 8 DAS dans le RUM.

On peut souhaiter nettoyer ces 0 à gauche pour les traitements.

Plusieurs approches sont possibles. Nous privilégions celle avec la fonction str_remove() du package stringr: du tidyverse.

nDA <- "08"
nDA <- stringr::str_remove(nDA, pattern = "^0+")
# "^0+" est une expression régulière (regex) qui repère tous les 0 à gauche
nDA
#> [1] "8"

Si on souhaite juste transformer la donnée en integer, on peut faire un simple as.integer()

nDA <- "08"
as.integer(nDA)
#> [1] 8

Mais pour nettoyer des NAS ou des numéro d’UM c’est bien l’approche avec stringr::str_remove() qui convient le mieux car elle conserve la donnée en character.