Type : CREATION_INTERNE
Los ejemplos utilizan datos generados (datalines) o SASHELP.
| 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 PRINT DATA=loan; |
| 9 | 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 PRINT DATA=mylib.loan; |
| 12 | 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 PRINT DATA=earn; 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 90 BY 5, /*a sequence*/ |
| 7 | 60 to 40 BY x; /*a sequence with a variable*/ |
| 8 | OUTPUT; |
| 9 | END; |
| 10 | RUN; |
| 11 | PROC PRINT DATA=do_list; 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 PRINT DATA=do_to; |
| 9 | RUN; |
| 1 | DATA do_to_by; |
| 2 | x=0; |
| 3 | DO i=0 to 10 BY 2; |
| 4 | x=x+1; |
| 5 | OUTPUT; |
| 6 | END; |
| 7 | RUN; |
| 8 | PROC PRINT DATA=do_to_by; |
| 9 | 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 PRINT DATA=mylib.loan; |
| 11 | RUN; |
| 1 | LIBNAME mylib cas; |
| 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 PRINT DATA=mylib.loan; |
| 13 | RUN; |