2 pièce(s) jointe(s)
Transformer variables caractères en variables numériques
Bonjour à tous,
J'ai actuellement un fichier excel xlsx contenant deux variables, la date et des valeurs de ventes journalières.
J'ai souhaité importer le fichier sous SAS à l'aide du code suivant :
Code:
1 2 3 4 5 6 7 8
| PROC IMPORT
OUT=RESULTATS
DATAFILE='C:\Users\kev\OneDrive\Bureau\\data.xlsx'
DBMS=xlsx
REPLACE;
SHEET='Ventes';
GETNAMES=YES;
RUN; |
PS : CLOSE correspond aux Ventes
Pièce jointe 589981
Or deux problèmes se posent : je possède une valeur manquante, comment le dire à SAS ?
Et lorsque j'effectue un PROC CONTENTS DATA=RESULTATS; RUN;.
Les ventes sont considérés comme des variables caractères au lieu d'être numérique.
Pouvez vous s'il vous plaît m'indiquer comment faire, je suis novice et je ne vois pas d'où viendrai l'erreur.
Merci d'avance,
Bien à vous,
Pièce jointe 589982
Transformer variables caractères en variables numériques
Bonjour,
Il est probable que la variable vente soit au format texte dans Excel. Vous pouvez le vérifier en élargissant la colonne vente dans Excel, l'alignement standard donne une information sur le type de la variable : les valeurs alignées à gauche sont de type texte et celles alignées à droite sont de type numérique.
La copie d'écran montre que le séparateur décimal est un point. Selon la configuration de votre ordinateur, Excel va comprendre la variable est de type caractère ou numérique.
Il est possible de modifier ce paramètres dans le panneau de configuration / Région / paramètres supplémentaires
- symbole décimal : point
- séparateur de liste : virgule
et de garder les autres paramètres au format français.
Pour convertir une variable caractères en numérique dans SAS :
Code:
var_n = input(var_c, 8.);
Quant aux variables manquantes, il n'y a rien a déclarer. Pour faire un test dessus :
Code:
1 2
| if var_n = . then message = "manquant";
if var_c = "" then message = "manquant"; |
Il faut savoir aussi que les données numériques manquantes sont codées en "moins l'infini" dans SAS ("plus l'infini" dans Stata). Ceci est important lors des sélections :
- La condition x <= 10 va sélectionner toutes les données <= 10 y compris les données manquantes dans SAS mais pas dans Stata.
- La condition x > 10 va sélectionner toutes les données > 10 y compris les données manquantes dans Stata mais pas dans SAS.
Cordialement,