top of page

IMPORTATION DE FICHIERS

Tout d'abord, il faut importer le fichier dans notre dossier SAS : faites un clique droit dans vos dossiers SAS (à gauche de l'écran) puis cliquez sur "télécharger un fichier vers le serveur".

Une fois que le fichier est dans le dossier SAS, il faut l'importer avec une étape DATA. Pour importer le fichier de données, on utilise l'instruction INFILE puis on indique le chemin d'importation du fichier.

DATA table1;

INFILE "/folders/myfolders/TD1/fichier1.txt" ;

INPUT id nom :$15. dateNais yymmdd10. ; /* Ne pas oublier le nom des variables avec les informats pour les variables textuelles et de type date. */

FORMAT dateNais yymmdd10. ; /* Ne pas oublier le format pour les données de type date. Sinon SAS transformera la date en nombre de jours depuis le 1er janvier 1960. */

RUN;

Astuce : pour obtenir le chemin d'un fichier, on peut faire un clique droit sur le fichier puis cliquer sur propriétés.

Si on ne veut pas que SAS lise tout le fichier, on peut lui indiquer le numéro de la première et de la dernière ligne qu'il doit lire. Cela se fait avec les instructions firstobs et obs.

On peut aussi créer une variable qui contiendra le numéro des lignes avec la commande _N_.

DATA table1;

INFILE "/folders/myfolders/TD1/fichier1.txt" firstobs=5 obs=20 ; /* Lit le fichier de la ligne 5 à 20. */

INPUT id nom :$15. prenom :$15. ;

ligne=_N_; /* ligne contiendra les numéros de lignes (d'observation). */

RUN;

Par défaut le délimiteur du fichier est la virgule. Pour spécifier à SAS un délimiteur, on utilise l'option dlm.

DATA table1;

INFILE "/folders/myfolders/TD1/fichier1.txt" dlm=";" ; /* Le délimiteur des données du fichier sera le point virgule. */

INPUT id nom :$15. prenom :$15. ;

RUN;

Si le délimiteur est la tabulation, il faut indiquer dlm="09"x (tabulation : caractère ASCII n°9).

Lorsque qu'un grand nombre d'espaces sépare les données, on doit utilise l'option EXPANDTABS.

De plus, si on veut lire un fichier de données qui contient un grand nombre de variables, on peut utiliser dans l'instruction INPUT la commande var1-varn (où var représente le nom des variables et n représente le nombre de variables).

DATA table1;

INFILE "/folders/myfolders/TD1/fichier1.txt" expandtabs ;

INPUT var1-var200; /* Déclare 200 variables. */

RUN;

Il se peut qu'un fichier ait des données manquantes (cases vides (fichier excel) ou deux virgules d'affilées (fichier csv)). Pour que SAS, ne décale pas toutes les données d'un rang lors qu'il rencontre une donnée manquante, il faut préciser l'option dsd. Vous pouvez aussi rajouter l'option truncover pour encore éviter certaines erreurs.

INFILE "/folders/myfolders/TD1/fichier1.csv"  dlm=";" dsd truncover;

RUN;

Dans un fichier de données, il est possible que les données se trouvent systématiquement à la même position. Ce sont des données tabulées.

Il y a donc deux possibilités pour définir l'emplacement des données:

- Avec le pointeur @X : on utilise le symbole @ puis on indique la position du début de la donnée. Tout cela avant le nom et l'informat de la variable.

​DATA table1;

INFILE "/folders/myfolders/TD1/fichier1.txt" ;

INPUT @1 nom $ @13 prenom @22 annee; /* Les données concernant la variable prenom commence à la colonne 13, celles concernant la variable annee commencent à la colonne 22. */

RUN;

- Sans le pointeur @X : on indique la position du début de la donnée puis la position de la fin de la donnée. Tout cela après le nom et l'informat de la variable.

DATA table1;

INFILE "/folders/myfolders/TD1/fichier1.txt" ;

INPUT nom $ 1-12 prenom $ 13-21 annee 22-25; /* Les données concernant la variable prenom commence à la colonne 13 et se termine à la colonne 21. */

RUN;

En plus : donner un libellé à ses variables

Attention à ne pas confondre la valeur d'une variable et le nom d'une variable.

Les formats servent à recoder les valeurs des variables. Cependant, il est aussi possible de donner une description (un libellé) aux variables. Cela se fait grâce à la commande LABEL.

DATA table1;

INFILE "/folders/myfolders/TD1/fichier1.txt" ;

INPUT id nom $ prenom $ ;

LABEL

id = "Identifiant de l'individu"

nom = "Nom de l'individu"

prenom =  "Prénom de l'individu"

; /* On met le point virgule de LABEL seulement à la fin de la déclaration de tous les libellés. */

RUN;

bottom of page