Help using Base SAS procedures

Re: Dataset Solution.

Accepted Solution Solved
Reply
Occasional Contributor
Posts: 13
Accepted Solution

Re: Dataset Solution.

1.  I have a dataset need to summarize the dataset and update the records as specified.

data test;

input stud_id subject marks

datalines

1 A 40

1 B 35

1 B 40

1 C 30

1 C 33

1 C 40

1 D 50

2 A 45

2 B 30

2 B 40

2 C 50

2 D 30

2 D 50

REQUIRED OUTPUT

STUD_ID SUBJECT MARKS

1     A     40

1     B     40

1     C     40

1     D     50

2     A     45

2     B      40

2     C     50

2     D     50

Note: student may fails and re writes the exams and gets pass for second or third time. Here latest marks(last attempt) to the particular subject for each student need to get updated on suject.


Accepted Solutions
Solution
‎12-19-2014 02:38 AM
Super Contributor
Posts: 490

Re: Dataset Solution.

Based on that the data set is sorted:

data test;

input stud_id subject $ marks;

datalines;

1 A 40

1 B 35

1 B 40

1 C 30

1 C 33

1 C 40

1 D 50

2 A 45

2 B 30

2 B 40

2 C 50

2 D 30

2 D 50

;

data new;

set test;

by stud_id subject;

if last.subject;

run;

View solution in original post


All Replies
Solution
‎12-19-2014 02:38 AM
Super Contributor
Posts: 490

Re: Dataset Solution.

Based on that the data set is sorted:

data test;

input stud_id subject $ marks;

datalines;

1 A 40

1 B 35

1 B 40

1 C 30

1 C 33

1 C 40

1 D 50

2 A 45

2 B 30

2 B 40

2 C 50

2 D 30

2 D 50

;

data new;

set test;

by stud_id subject;

if last.subject;

run;

Super Contributor
Posts: 305

Re: Dataset Solution.


Hello,

data have;
input stud_id subject $ marks;
datalines;
1 A 40
1 B 35
1 B 40
1 C 30
1 C 33
1 C 40
1 D 50
2 A 45
2 B 30
2 B 40
2 C 50
2 D 30
2 D 50
;

proc means data=have noprint nway ;
class stud_id subject;
var marks;
output out=maximum(drop=_freq_ _type_) max=marks;
run;

☑ This topic is SOLVED.

Need further help from the community? Please ask a new question.

Discussion stats
  • 2 replies
  • 191 views
  • 0 likes
  • 3 in conversation