Create a dataset to genrate the count of the number of student in a STUD dataset and also display records only if student count is 3 or more than 3
STUD Dataset :
STUDID MARKS
1 24
1 24
1 24
2 24
2 24
3 24
O/P Requirement :
STUDID MARKS NEWVAR (U NEED TO CREATE)
1 24 1
1 24 2
1 24 3
2 24 1
2 24 2
3 24 1
can i get the output using proc freq procedure? (or) Which mehod is good to go?
Determine the number of obs per studid in an intermediate step and then merge with the original dataset.
Note the use of the keep= option.
data have;
input studid marks;
cards;
1 24
1 24
1 24
2 24
2 24
3 24
;
run;
data int (keep=studid);
set have;
by studid;
if first.studid
then newvar = 1;
else newvar + 1;
if last.studid and newvar > 1;
run;
data want;
merge
have
int (in=a)
;
by studid;
if a and (first.studid or last.studid);
run;
Just use by processing and the correct syntax so newvar is automatically retained:
data want;
set have;
by studid;
if first.studid
then newvar = 1;
else newvar + 1; * this simple increment statement makes newvar a retained variable;
run;
Ohh Thank u soo much KurtBremser for the quick reply. And I have 1 more question for the same dataset:
Consider above student dataset and create a new dataset with only FIRST and LAST record of a student. If count =1 then no need to populate that record
Regards,
Shahnaz
Determine the number of obs per studid in an intermediate step and then merge with the original dataset.
Note the use of the keep= option.
data have;
input studid marks;
cards;
1 24
1 24
1 24
2 24
2 24
3 24
;
run;
data int (keep=studid);
set have;
by studid;
if first.studid
then newvar = 1;
else newvar + 1;
if last.studid and newvar > 1;
run;
data want;
merge
have
int (in=a)
;
by studid;
if a and (first.studid or last.studid);
run;
Available on demand!
Missed SAS Innovate Las Vegas? Watch all the action for free! View the keynotes, general sessions and 22 breakouts on demand.
Learn how use the CAT functions in SAS to join values from multiple variables into a single value.
Find more tutorials on the SAS Users YouTube channel.