Você está na página 1de 3

SAS Example Programs

Student Results [using if then else]:


data Students;
infile datalines;
input s_id sname $ Maths Physics Chemistry TotalMarks ;
datalines;
101 aaa 80 70 60 210
102 bbb 90 60 40 190
103 ccc 65 50 50 165
104 ddd 95 90 85 270
105 eee 30 25 35 90
;
run;
data Result; set Students;
if TotalMarks > 250 then FinalResult = 'Distinction';
else if 201 <= TotalMarks <= 250 then FinalResult = 'First div';
else if 101 <= Totalmarks <= 200 then FinalResult = 'Second div';
else if 51 <= TotalMarks <= 100 then FinalResult = 'Third div';
else if TotalMarks < 50 then FinalResult = 'Poor';
run;
proc print data = Result;
run;
output:
Obs

s_id sname

Maths

Physics

Chemistry

TotalMarks FinalResult

101 aaa

80

70

60

210 First div

102 bbb

90

60

40

190 Second div

103 ccc

65

50

50

165 Second div

104 ddd

95

90

85

270 Distinction

105 eee

30

25

35

90 Third div

Modified Program [only 1 datastep program]:


data Students;
infile datalines;
input s_id sname $ Maths Physics Chemistry TotalMarks ;
if TotalMarks >= 250 then FinalResult = 'Distinction';
else if TotalMarks >= 200 then FinalResult = 'First div';
else if Totalmarks >= 100 then FinalResult = 'Second div';
else if TotalMarks >= 50 then FinalResult = 'Third div';

else if TotalMarks < 50 then FinalResult = 'Poor';


datalines;
101 aaa 80 70 60 210
102 bbb 90 60 40 190
103 ccc 65 50 50 165
104 ddd 95 90 85 270
105 eee 30 25 35 90
;
run;
proc print data = Students;
run;
Students marks program [using Do statement]
data Test;
infile datalines;
input subj $ marks ;
datalines;
maths 90
physics 70
chemistry 50
biology 34
;
run;
data AnnualTest; set Test;
if marks >= 80 then do;
Grade = 'A' ; Result = 'Distinction'; end;
else if marks >= 60 then do;
Grade = 'B' ; Result = 'Above Avg' ; end;
else if marks >= 35 then do;
Grade = 'C' ; Result = 'Below Avg' ; end;
else if marks < 35 then do;
Grade = 'D' ; Result = 'Fail' ; end;
run;
proc print data = AnnualTest;
format Result $char12. ;
run;
output:
Obs subj

marks Grade

Result

1 maths

90 A

Distinction

2 physics

70 B

Above Avg

3 chemistr

50 C

Below Avg

Obs subj

4 biology

marks Grade

Result

34 D

Fail

Running Total Program


data dailyrevenue;
infile datalines;
input day $ revenue;
datalines;
mon 1000
tue 2500
wed 3000
thu 4000
fri 5000
;
run;
data TotalRev; set dailyrevenue;
total + revenue;
run;
proc print data = TotalRev;
run;
output:
Obs day

revenue

total

1 mon

1000

1000

2 tue

2500

3500

3 wed

3000

6500

4 thu

4000

10500

5 fri

5000

15500

Você também pode gostar