SAS : Comment convertir une variable de caractère en date



Vous pouvez utiliser la fonction input() dans SAS pour convertir une variable de caractère en un format de variable de date.

Cette fonction utilise la syntaxe de base suivante :

date_var = input(character_var, MMDDYY10.);
format date_var MMDDYY10.;

L’exemple suivant montre comment utiliser cette fonction dans la pratique.

Exemple : convertir une variable de caractère en date dans SAS

Supposons que nous ayons l’ensemble de données suivant dans SAS qui montre les ventes totales réalisées par un magasin pendant six jours différents :

/*create dataset*/
data original_data;
    input day $ sales;
    datalines;
01012022 15
01022022 19
01052022 22
01142022 11
01152022 26
01212022 28
;
run;

/*view dataset*/
proc print data=original_data;

Nous pouvons voir que le jour est une variable de type caractère, mais il doit être représenté dans un format de date.

Nous pouvons utiliser le code suivant pour créer un nouvel ensemble de données dans lequel nous convertissons la variable jour d’un format de caractère en format de date :

/*create new dataset where 'day' is in date format*/
data new_data;
    set original_data;
    new_day = input(day, MMDDYY10.);
    format new_day MMDDYY10.;
    drop day;
run;

/*view new dataset*/
proc print data=new_data; 

Remarque : Nous avons utilisé la fonction drop pour supprimer la variable de jour d’origine de l’ensemble de données.

Nous pouvons voir que la nouvelle variable que nous avons créée, new_day , est au format date.

Notez que MMJJAA10. n’est qu’un format de date possible que nous aurions pu utiliser. Vous pouvez trouver une liste complète des formats de date SAS ici .

Ressources additionnelles

Les didacticiels suivants expliquent comment effectuer d’autres tâches courantes dans SAS :

SAS : Comment convertir une variable de caractère en numérique
SAS : Comment convertir une variable numérique en caractère
SAS : Comment remplacer les valeurs manquantes par zéro

Ajouter un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *