Los ejemplos utilizan datos generados (datalines) o SASHELP.
1 Bloque de código
DATA STEP Data
Explicación : Este ejemplo utiliza una instrucción DO iterativa para decrementar repetidamente los valores de la variable 'balance' y escribir estos valores en el conjunto de datos de salida. El paso DATA se ejecuta en el servidor SAS Compute.
¡Copiado!
data loan;
balance=10000;
do payment_number=1 to 10;
balance=balance-1000;
output;
end;
run;
proc print data=loan;
run;
1
DATA loan;
2
balance=10000;
3
DO payment_number=1 to 10;
4
balance=balance-1000;
5
OUTPUT;
6
END;
7
RUN;
8
PROC PRINTDATA=loan;
9
RUN;
2 Bloque de código
DATA STEP Data
Explicación : Este ejemplo utiliza el mismo bucle DO iterativo para ejecutar el paso DATA en CAS y crear una tabla CAS de salida.
¡Copiado!
cas casauto sessopts=(caslib='casuser');
libname mylib cas;
data mylib.loan;
balance=10000;
do payment_number=1 to 10;
balance=balance-1000;
output;
end;
run;
proc print data=mylib.loan;
run;
1
cas casauto sessopts=(caslib='casuser');
2
LIBNAME mylib cas;
3
4
DATA mylib.loan;
5
balance=10000;
6
DO payment_number=1 to 10;
7
balance=balance-1000;
8
OUTPUT;
9
END;
10
RUN;
11
PROC PRINTDATA=mylib.loan;
12
RUN;
3 Bloque de código
DATA STEP Data
Explicación : Este ejemplo muestra cómo anidar un bucle DO dentro de otro para calcular el valor de una inversión de un año que rinde un 7.5% de interés anual, compuesto mensualmente.
¡Copiado!
data earn;
Capital=2000;
do Year=1 to 10;
do Month=1 to 12;
Interest=Capital*(.075/12);
Capital+Interest;
output;
end;
end;
run;
proc print data=earn; run;
1
DATA earn;
2
Capital=2000;
3
DO Year=1 to 10;
4
DO Month=1 to 12;
5
Interest=Capital*(.075/12);
6
Capital+Interest;
7
OUTPUT;
8
END;
9
END;
10
RUN;
11
PROC PRINTDATA=earn; RUN;
4 Bloque de código
DATA STEP Data
Explicación : Este ejemplo utiliza la sintaxis DOLIST para iterar sobre una lista de valores, incluyendo valores únicos, múltiples, expresiones y secuencias con o sin variables.
¡Copiado!
data do_list;
x=-5;
do i=5, /*a single value*/
5, 4, /*multiple values*/
x + 10, /*an expression*/
80 to 90 by 5, /*a sequence*/
60 to 40 by x; /*a sequence with a variable*/
output;
end;
run;
proc print data=do_list; run;
1
DATA do_list;
2
x=-5;
3
DO i=5, /*a single value*/
4
5, 4, /*multiple values*/
5
x + 10, /*an expression*/
6
80 to 90BY5, /*a sequence*/
7
60 to 40BY x; /*a sequence with a variable*/
8
OUTPUT;
9
END;
10
RUN;
11
PROC PRINTDATA=do_list; RUN;
5 Bloque de código
DATA STEP Data
Explicación : Este ejemplo utiliza la sintaxis iterativa DO TO para incrementar repetidamente los valores de 'x'. El bucle también utiliza la instrucción OUTPUT para escribir cada valor incrementado de 'x' en el conjunto de datos de salida.
¡Copiado!
data do_to;
x=0;
do i=0 to 10;
x=x+1;
output;
end;
run;
proc print data=do_to;
run;
1
DATA do_to;
2
x=0;
3
DO i=0 to 10;
4
x=x+1;
5
OUTPUT;
6
END;
7
RUN;
8
PROC PRINTDATA=do_to;
9
RUN;
6 Bloque de código
DATA STEP Data
¡Copiado!
data do_to_by;
x=0;
do i=0 to 10 by 2;
x=x+1;
output;
end;
run;
proc print data=do_to_by;
run;
1
DATA do_to_by;
2
x=0;
3
DO i=0 to 10BY2;
4
x=x+1;
5
OUTPUT;
6
END;
7
RUN;
8
PROC PRINTDATA=do_to_by;
9
RUN;
7 Bloque de código
DATA STEP Data
¡Copiado!
data loan;
balance=10000;
payment=0;
do while (balance>0);
balance=balance-1000;
payment=payment+1;
output;
end;
run;
proc print data=mylib.loan;
run;
1
DATA loan;
2
balance=10000;
3
payment=0;
4
DO while (balance>0);
5
balance=balance-1000;
6
payment=payment+1;
7
OUTPUT;
8
END;
9
RUN;
10
PROC PRINTDATA=mylib.loan;
11
RUN;
8 Bloque de código
DATA STEP Data
¡Copiado!
libname mylib;
data mylib.loan;
balance=10000;
payment=0;
do until (balance=0);
balance=balance-1000;
payment=payment+1;
output;
end;
run;
proc print data=mylib.loan;
run;
1
LIBNAME mylib;
2
3
DATA mylib.loan;
4
balance=10000;
5
payment=0;
6
DO until (balance=0);
7
balance=balance-1000;
8
payment=payment+1;
9
OUTPUT;
10
END;
11
RUN;
12
PROC PRINTDATA=mylib.loan;
13
RUN;
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.