Los datos se generan directamente en el código a través de la instrucción DATALINES.
1 Bloque de código
DATA STEP Data
Explicación : Creación de la tabla Grades1. ATENCIÓN: La variable 'result' se inicializa a '' (cadena vacía), lo que fija su longitud en 1 carácter. Los valores 'Failed' y 'Passed' serán truncados a 'F' y 'P'.
¡Copiado!
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;
Explicación : Visualización de Grades1 para observar el truncamiento de la variable 'result'.
¡Copiado!
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 Bloque de código
DATA STEP Data
Explicación : Creación de Grades2. Aquí, 'result' se inicializa con una cadena de 9 espacios. Esto fuerza implícitamente la longitud a 9, evitando el truncamiento, pero consume espacio innecesariamente si la cadena está vacía.
¡Copiado!
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+enzam2+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;
Explicación : Visualización de Grades2. Los valores 'Failed' y 'Passed' aparecen correctamente.
¡Copiado!
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 Bloque de código
DATA STEP Data
Explicación : Creación de Grades3. Uso de la instrucción 'LENGTH result $8.;' antes de usar la variable. Este es el método recomendado para controlar con precisión el tipo y la longitud de las variables.
¡Copiado!
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 if avgscore >= 80 then 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;
Explicación : Visualización final de Grades3 confirmando la correcta gestión de la variable.
¡Copiado!
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
Este material se proporciona "tal cual" por We Are Cas. No hay garantías, expresas o implícitas, en cuanto a la comerciabilidad o idoneidad para un propósito particular con respecto a los materiales o el código contenidos en este documento. We Are Cas no es responsable de los errores en este material tal como existe ahora o existirá, ni We Are Cas proporciona soporte técnico para el mismo.
SAS y todos los demás nombres de productos o servicios de SAS Institute Inc. son marcas registradas o marcas comerciales de SAS Institute Inc. en los EE. UU. y otros países. ® indica registro en los EE. UU. WeAreCAS es un sitio comunitario independiente y no está afiliado a SAS Institute Inc.
Este sitio utiliza cookies técnicas y analíticas para mejorar su experiencia.
Saber más.