SlideServe
Menu
Préférences
© SlideServe · v2026

Programming in SAS

whitley avatar
14 diapositives · 363 Views · Aug 26, 2012

Programming in SAS. How SAS implements structured programming constructs. SAS Philosophy. The “Elephant philosophy of programming” Remove everything that doesn’t look like an elephant. SAS manipulates tables one row at a time. DATA Steps. Program statements are executed within data steps

Programming in SAS - slide 1
01 / 14Programming in SAS
1 / 17

Télécharger la présentation

Programming in SAS
Une image / un lien ci-dessous est fourni (tel quel) pour télécharger la présentation

Politique de téléchargement : le contenu du site vous est fourni TEL QUEL pour votre information et votre usage personnel ; il ne peut être vendu, concédé sous licence ni partagé sur d’autres sites sans l’accord de son auteur.Le contenu vous est fourni TEL QUEL, pour votre information et votre usage personnel uniquement. Téléchargez la présentation en cliquant sur ce lien. Lors du téléchargement, si vous ne parvenez pas à télécharger une présentation, l’éditeur a peut-être supprimé le fichier de son serveur.Pendant le téléchargement, si vous ne parvenez pas à obtenir une présentation, le fichier a peut-être été supprimé par l’éditeur.

F I N

Plus de contenu associé

Transcription de la présentation
  1. Programming in SAS How SAS implements structured programming constructs

  2. SAS Philosophy The “Elephant philosophy of programming” Remove everything that doesn’t look like an elephant. SAS manipulates tables one row at a time.

  3. DATA Steps • Program statements are executed within data steps • Code is executed in the order that it appears • Instruction sets in SAS end with a DATA, PROC, or RUN statement • Each DATA step executes an implied loop from the first read statement (SET, MERGE, INPUT, etc.) to the start of the next instruction set • Data records are output at the end of the instruction set (implied OUTPUT) unless there is an OUTPUT statement

  4. Sequence Statement 1 Statement 2 Statement 3 Statement 4 Statement …

  5. Statement 1 Statement 1 Statement 2 Statement 2 Statement 3 Statement 3 *** *** Statement n Statement n Loops Setup Statements Setup Statements DO WHILE DO UNTIL

  6. DO Statement DO; ...more SAS statements... END; DOindex-variable=specification-1 <, . . . specification-n>; . . . more SAS statements . . . END;

  7. DO WHILE|UNTIL Statement • The UNTIL expression is evaluated at the bottom of the loop after the statements in the DO loop have been executed. If the expression is true, the DO loop does not iterate again. • The WHILE expression is evaluated at the top of the loop before the statements in the DO loop are executed. If the expression is true, the DO loop iterates. If the expression is false the first time it is evaluated, the DO loop does not iterate even once.

  8. Examples n=0; do while(n<5); n= n+1; put n; end; n=0; do until (n<5); n= n+1; put n; end;

  9. Examples • do i=1 to 10; • do count=2 to 8 by 2; • do i=1 to 10 while (x<y); • do i=2 to 20 by 2 until((x/3)>y);

  10. Selection Select Case 1 Case 2 Case 3 Statement 1a Statement 1b Statement 1c Statement 2a Statement 2b Statement 2c Statement 3a Statement 3c Statement 3c Statement … Statement … Statement …

  11. IF-THEN/ELSE Statement • IFexpressionTHENstatement; <ELSEstatement;> • Arguments • expression • is any SAS expression and is a required argument. • statement • can be any executable SAS statement or DO group.

  12. SAS Selection Constructs • IF … THEN …; ELSE …; • IF … THEN • DO; • Statements • END • ELSE • DO; • Statements • END; • Other else statements.

  13. SELECT Statement SELECT <(select-expression)>; WHEN-1 (when-expression-1 <..., when-expression-n>) statement; <... WHEN-n (when-expression-1 <..., when-expression-n>) statement;> <OTHERWISEstatement; END; • (select-expression) specifies any SAS expression that evaluates to a single value. • (when-expression) specifies any SAS expression, including a compound expression.

  14. SAS Selection Constructs (cont.) SELECT (payclass); WHEN ('monthly') amt=salary; WHEN ('hourly') DO; amt=hrlywage*min(hrs,40); IF hrs>40 THEN PUT 'Check Timecard'; END; /* end of do */ OTHERWISE PUT 'Problem Observation'; END;