Les données sont générées directement dans le code via l'instruction DATALINES.
1 Bloc de code
DATA STEP Data
Explication : Création de la table Grades1. ATTENTION : La variable 'result' est initialisée à '' (chaîne vide), ce qui fixe sa longueur à 1 caractère. Les valeurs 'Failed' et 'Passed' seront tronquées en 'F' et 'P'.
Copié !
DATA Grades1;
input subj 1-4 name $ 5-23 sex exam1 exam2 exam3 exam4 exam5 project finalexam;
actualavg = mean(exam1,exam2,exam3,exam4,exam5,project,finalexam);
avgscore = (exam1+exam2+exam3+exam4+exam5+project+finalexam)/7;
if avgscore=. then result=''; * missing value;
else if avgscore < 80 then result='Failed';
else result='Passed';
DATALINES;
1011 Alia Bhatt 2 100 65 83 84 99 91 96
1012 Maria Smith 1 78 82 86 . 100 95 97
1111 Thomas Jones 2 88 81 96 69 91 90 98
1121 Benedictine Arnold 2 68 82 82 89 89 93 99
1301 Trisha Gupta 1 51 69 79 59 85 64 100
;
RUN;
1
DATA Grades1;
2
INPUT subj 1-4 name $ 5-23 sex exam1 exam2 exam3 exam4 exam5 project finalexam;
Explication : Affichage de Grades1 pour observer la troncature de la variable 'result'.
Copié !
PROC PRINT DATA=Grades1;
var name avgscore actualavg result;
RUN;
1
2
PROC PRINT
3
DATA=Grades1;
4
var name avgscore actualavg RESULT;
5
RUN;
6
3 Bloc de code
DATA STEP Data
Explication : Création de Grades2. Ici, 'result' est initialisée avec une chaîne de 9 espaces. Cela force implicitement la longueur à 9, évitant la troncature, mais consomme de l'espace inutilement si la chaîne est vide.
Copié !
DATA Grades2;
input subj 1-4 name $ 5-23 sex exam1 exam2 exam3 exam4 exam5 project finalexam;
actualavg = mean(exam1,exam2,exam3,exam4,exam5,project,finalexam);
avgscore = (exam1+exam2+exam3+exam4+exam5+project+finalexam)/7;
if avgscore=. then result=' '; * missing value;
else if avgscore < 80 then result='Failed';
else result='Passed';
DATALINES;
1011 Alia Bhatt 2 100 65 83 84 99 91 96
1012 Maria Smith 1 78 82 86 . 100 95 97
1111 Thomas Jones 2 88 81 96 69 91 90 98
1121 Benedictine Arnold 2 68 82 82 89 89 93 99
1301 Trisha Gupta 1 51 69 79 59 85 64 100
;
RUN;
1
DATA Grades2;
2
INPUT subj 1-4 name $ 5-23 sex exam1 exam2 exam3 exam4 exam5 project finalexam;
Explication : Affichage de Grades2. Les valeurs 'Failed' et 'Passed' apparaissent correctement.
Copié !
PROC PRINT DATA=Grades2;
var name avgscore actualavg result;
RUN;
1
2
PROC PRINT
3
DATA=Grades2;
4
var name avgscore actualavg RESULT;
5
RUN;
6
5 Bloc de code
DATA STEP Data
Explication : Création de Grades3. Utilisation de l'instruction 'LENGTH result $8.;' avant l'utilisation de la variable. C'est la méthode recommandée pour contrôler précisément le type et la longueur des variables.
Copié !
DATA Grades3;
length result $8.;
input subj 1-4 name $ 5-23 sex exam1 exam2 exam3 exam4 exam5 project finalexam;
actualavg = mean(exam1,exam2,exam3,exam4,exam5,project,finalexam);
avgscore = (exam1+exam2+exam3+exam4+exam5+project+finalexam)/7;
if avgscore=. then result=''; * missing value;
else if avgscore < 80 then result='Failed';
else result='Passed';
DATALINES;
1011 Alia Bhatt 2 100 65 83 84 99 91 96
1012 Maria Smith 1 78 82 86 . 100 95 97
1111 Thomas Jones 2 88 81 96 69 91 90 98
1121 Benedictine Arnold 2 68 82 82 89 89 93 99
1301 Trisha Gupta 1 51 69 79 59 85 64 100
;
RUN;
1
DATA Grades3;
2
LENGTHRESULT $8.;
3
INPUT subj 1-4 name $ 5-23 sex exam1 exam2 exam3 exam4 exam5 project finalexam;
Explication : Affichage final de Grades3 confirmant la bonne gestion de la variable.
Copié !
PROC PRINT DATA=Grades3;
var name avgscore actualavg result;
RUN;
1
2
PROC PRINT
3
DATA=Grades3;
4
var name avgscore actualavg RESULT;
5
RUN;
6
Ce matériel est fourni "tel quel" par We Are Cas. Il n'y a aucune garantie, expresse ou implicite, quant à la qualité marchande ou à l'adéquation à un usage particulier concernant le matériel ou le code contenu dans les présentes. We Are Cas n'est pas responsable des erreurs dans ce matériel tel qu'il existe maintenant ou existera, et We Are Cas ne fournit pas de support technique pour celui-ci.
SAS et tous les autres noms de produits ou de services de SAS Institute Inc. sont des marques déposées ou des marques de commerce de SAS Institute Inc. aux États-Unis et dans d'autres pays. ® indique un enregistrement aux États-Unis. WeAreCAS est un site communautaire indépendant et n'est pas affilié à SAS Institute Inc.
Ce site utilise des cookies techniques et analytiques pour améliorer votre expérience.
En savoir plus.