Data

Solution des exercices .... Exercice : dans le cadre d'une expérimentation (3x3)
on a manipulé (OFFRE) la présence et ..... revenu*(mean std max min)*F=6.1 ),.

Part of the document

Séance 2 : Prise en main de SAS
Sommaire Exécution d'un programme SAS 2
Un tableau de données SAS (Data) 2
Une instruction SAS 2
Structure d'un programme SAS 2
Data : Variable 3
Data : Créer un data 3
Vérification des données 4
Data/* : Commenter 5
Data/Title : Renseigner les sorties 5
Data/Label : Libeller les variables 6
Data/Length : Fixer la taille des variables 6
Data/Attrib : Taille les variables 6
Proc SORT : Trier les informations 6
Proc PRINT : Imprimer les informations 7
Proc FORMAT : Formater les modalités 7
Proc FREQ : Tableau de fréquences 8
Proc TABULATE :Tableau de synthèse 9
Proc RANK : Créer des rangs 10
Solution des exercices 11
Exécution d'un programme SAS Un traitement est composé de 4 éléments (onglets du haut)
- PROGRAMME : le programme (ensemble d'instructions)
- JOURNAL : la description de l'exécution et la vérification des
instructions
- RESULTATS : les résultats demandés (si le programme ne contient pas
d'erreurs)
- DONNEES DE SORTIE : les tableaux créés (type feuille de calcul) Quelques bonnes pratiques :
Toujours consulter JOURNAL avant de consulter RESULTATS
Vérifier que les données sont bien lues
Regarder s'il n'y a pas eu d'erreurs détectées Un programme s'exécute :
Par la fonction F8
En lançant « exécuter » (petit bonhomme)
On peut exécuter seulement une partie du code en la sélectionnant
avec la souris puis F8 Un tableau de données SAS (Data) Il se présente comme une feuille de calcul
- Chaque ligne représente « un individu »
- Chaque colonne représente « une variable »
Il peut faire l'objet de manipulation directe (sans programme) comme avec
SPSS Une instruction SAS Une instruction se termine toujours par un point-virgule « ; ».
- Elle peut être sur plusieurs lignes
- Il peut y avoir plusieurs instructions sur une ligne
- SAS ne différencie pas les Minuscules et les Majuscules Une instruction est analysée de manière interactive
- Couleur bleue : mot-clé reconnu par SAS
- Couleur rouge sombre : des libellés et étiquettes entre crochet (« )
et ( »)
- Couleur verte : des commentaires
- Couleur noire : le reste
Title3 H=8 "Croisement genre et X"; /* H hauteur de 8
points*/ Structure d'un programme SAS Un programme est un ensemble
- d'étapes DATA qui manipulent des tableaux de données
- de PROCédures qui traitent les données d'un tableau
- dont l'exécution est lancée par un « RUN ; »
Data : Variable Une variable est, par défaut, définie uniquement à l'intérieur de son
tableau (data).
- dont l'exécution est lancée par un « RUN ; »
- Le nom de variable commence toujours par une lettre, contient des
lettres ou des chiffres et le caractère souligné (_) mais pas
d'espace.
- Ne pas commencer le nom des variables par un souligné "_" car les noms
système commencent par ce caractère (_N_,...).
- Les variables sont, par défaut, des variables numériques. Elles
peuvent aussi être des alphanumériques ou des dates. Le groupage permet d'invoquer plusieurs variables de manière synthétique
- le tiret permet de traiter des variables ayant le même préfixe (Q1-Q5)
- le double tiret permet de traiter les variables en séquence selon
l'ordre de leur lecture (vendeur-- age) correspond à toutes les
variables entre vendeur et age),
- vendeur - numeric - age ne reprend que les variables numériques de la
liste
- (autre option - character- pour le texte)
- le deux points ":" remplace tous les suffixes (« X: » correspond à
xage, xgenre, xmontant) Data : Créer un data Un tableau peut être créé de différentes manières.
- Dans le programme,
o par une instruction INPUT
o qui lit des données suivant l'instruction CARDS ; et avant le
point-virgule final
o Attention ! bien vérifier le nombre de variables car sinon SAS
lit la valeur qui lui manque à la ligne suivante !
Data IN ; /* Etape Data : nouveau tableau*/
/*« IN » est le nom donné au tableau*/
Input Nom $ Age ; /*Lecture de 2 variables dont la première est
alphabétique*/
Cards ; /* Les données suivent */
Jules 12
Jacques 52
;
Run ;
Proc Print Data= in ; /* Procédure : impression de vérification*/
Var Age ;
Run ;
- A partir d'un autre tableau défini précédemment,
o par l'instruction SET (à partir de ...)
Data Tableau_1 ; /* Création d'un second tableau nommé Tableau_1 */
Set in ; /* à partir des données du premier tableau */
Age_2 = Age * Age ; /* Manipulation des données, ici mise au carré */
Run ; - A partir d'un fichier externe excel (xls)
/* attention plusieurs lignes mais une seule instruction ( ;) */
Proc IMPORT datafile='C:/sasref/fichier_1.xls'/* adresse physique du
fichier*/
out=getname_ex /* nom du data */
dbms=xls /* Type de fichier : ici excel*/
replace; /* Remplacer si le fichier existe
déjà */
getname=yes; /* Utiliser les noms des colonnes pour les variables
*/
/* Attention ! tous les noms doivent exister */
run; - A partir d'un fichier externe de données texte avec séparateur
(délimiteur DLM)
o Où les variables sont séparées par des délimiteurs
o Un « ; » (CSV), un « / », etc
Data in ;
infile 'c :\fichier_txt' /* adresse physique du fichier*/
dlm=' ' ; /* indication du délimiteur*/
input var1 var2 $ ;
run ; - A partir d'un fichier externe de données texte
o Avec un dessin d'enregistrement (variable toujours à la même
place, de longueur fixe
o Par défaut numérique, indiquer « $ » pour alphanumérique
o Position physique : 13-15 de la colonne 13 à la 15 (3
caractères)
o Par taille 3. = lire 3 caractères
o « +3 » sauter 3 colonnes
Data in ;
infile 'c :\fichier_txt' ; /* adresse physique du fichier*/
input var1 3. /* variable à la longueur connue*/
var2 $ 13-15 ; /* variable alphanumérique à la position connue col13
à col 15*/
run ; - A partir d'une procédure
o Avec une instruction du type OUTPUT ou OUT
o Utile par exemple avec l'analyse factorielle ou la typologie
Proc SORT DATA = in OUT= in_trie; * crée un tableau trié
(in_trie) ;
By no_cli ; Exercice : dans le cadre d'une expérimentation (3x3) on a manipulé (OFFRE)
la présence et le niveau (remboursement ou remboursement double)
d'une garantie de satisfaction pour 3 niveaux de prix (PRIX : 1.62
1.92 2.22 E). Vous avez le numéro du groupe, le niveau de garantie,
le prix, l'intention d'achat de la marque sans le prix (1 à 5 :
forte), la cherté perçue (1 à 5 : très cher), l'intention d'achat
avec annonce du prix et le niveau du prix habituellement payé pour
un pack de 1 litre de jus d'orange frais.
- Lire
http://www.mastermarketingdauphine.com/charge/ADD/Orange_mini.txt
- Vérifier que le tableau est bien créé; Vérification des données
Vérification des données TOUJOURS bien s'assurer que les données ont été bien lues
Comment ?
En regardant les tableaux créés par la lecture (onglet « Données de
sortie »)
Pourquoi ?
- Difficulté 1
o Un enregistrement = des données pour 1 individu et peut contenir
plusieurs lignes
o Mais une « ligne » contient au maximum 256 caractères et se
termine par un caractère de fin de ligne. Le programme cherche à
lire les informations sur la ligne suivante !
o Bien vérifier que les données sont bien lues (en comparant avec
les données brutes)
o Identification du problème : des données aberrantes et la
réduction du nombre d'observations
- Difficulté 2 : séparateur des décimales « , » en français mais « . »
en US. Faire « Remplacer »
- Difficulté 3 : le mode de séparation des valeurs. Si on coupe/colle à
partir d'excel, le séparateur est une tabulation et non un espace.
Faire « Remplacer ». Data/* : Commenter
Mettre des commentaires dans votre programme Les commentaires ne sont pas des instructions. Ils sont ignorés lors de
l'exécution.
- Pour vous souvenir de ce que vous voulez faire
- Pour que d'autres puissent reprendre votre travail
- Pour séparer les parties de programme ayant des fonctions différentes Il y a deux types de commentaires
- Les commentaires « instructions » : toute instruction qui commence par
« * » est ignoré :
o * commentaire ;
- Les commentaires « neutralisant » : Tout ce qui se situe entre « /* »
et « */ » est ignoré par le programme : /* commentaire */
- Ce dernier peut être utilisé « DANS » une instruction (avant le « ; »
final)
* commentaire ;: comme une ligne spécifique, débute par « * » et finit par
« ; »
/* commentaire */ ; a l'intérieur d'une ligne : encadré par « /* » et
« */ »
/* comme un bloc de plusieurs lignes que l'on veut rendre « inertes » pour
le programme */
/*
Proc print data=in : run ;
*/
Proc print /* attention : changer le nom du data */ Data= in ; Votre programme doit être « renseigné » et lisible.
/* =========================*/
/*Titre : premier programme */
/* date : */
/* objectif */
/* auteur */
/*version */
/* =========================*/ ********************* ;
*