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;
Don't miss out on SAS Innovate - Register now for the FREE Livestream!
Can't make it to Vegas? No problem! Watch our general sessions LIVE or on-demand starting April 17th. Hear from SAS execs, best-selling author Adam Grant, Hot Ones host Sean Evans, top tech journalist Kara Swisher, AI expert Cassie Kozyrkov, and the mind-blowing dance crew iLuminate! Plus, get access to over 20 breakout sessions.
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.