Bonjour,
je galère pour modifier sous condition une valeur d'une cellule d'un dataframe.
J'ai importé un très gros fichier TXT avec des adresses postales mais malheureusement les départements 01à 09 sont numérotés de 1 à 9 dans le fichier source.
Je souhaiterai remettre au bon format. pour ce faire après l'import, je créé 4 colonnes (NCODEPOS et NDEPET qui reprennent les valeur de la colonne CODPOS et DEPET mais en format char et 2 colonnes qui me calculent la longueur de la chaine de chaque colonne).
Code :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
basecli <- mutate(basecli,
NCODEPOS= as.character(CODPOS),
NDEPET = as.character(DEPET),
NBCARCODEPOS = str_length(CODPOS),
NBCARDEPET = str_length(DEPET))
A partir de là je veux modifier la valeur de la colonne NCODEPOS en ajoutant un 0 à la valeur lorsque la valeur de NBCARCODEPOS = 4 (exemple si NCODEPOS = 4560 , je veux la modifier à 04560).

J'ai testé avec un if mais ça ne fonctionne pas, voici mon code :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
library(readr)
library(dplyr)
library(dtplyr)
library(stringr)
 
basecli<- mutate(basecli, CODEPOS = ifelse((str_length(NBCARCODEPOS)==4 , str_c ("0", NBCARCODEPOS), NCODEPOS))
Je n'ai pas de message d'erreur ni d'insulte mais je n'ai pas ma nouvelle colonne...

Pouvez-vous m'aider ? Comment je peux faire ? Ou si vous avez une autre solution.... merci.

PS : j'adapterais le code pour le département.