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;
Are you ready for the spotlight? We're accepting content ideas for SAS Innovate 2025 to be held May 6-9 in Orlando, FL. The call is open until September 25. Read more here about why you should contribute and what is in it for you!
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.