one
x y z
1 A 27
1 A 33
1 B 45
2 A 52
2 B 69
3 B 70
4 A 82
4 C 91
data two ;
set one;
by x y;
if first.y;
run;
proc print data = two noobs;
run;
can somebody plz explain exactly what we are doing in this program and why i m getting this output
x y z
1 A 27
1 B 45
2 A 52
2 B 69
3 B 70
4 A 82
4 C 91
Not exactly sure what you want to have, but you are outputting the first record in var "y"
@sanyam13 wrote:
one
x y z
1 A 27
1 A 33
1 B 45
2 A 52
2 B 69
3 B 70
4 A 82
4 C 91
data two ;
set one;
by x y;
if first.y;
run;
proc print data = two noobs;
run;
can somebody plz explain exactly what we are doing in this program and why i m getting this output
x y z
1 A 27
1 B 45
2 A 52
2 B 69
3 B 70
4 A 82
4 C 91
The "If first.y;" statement says to keep the record only for the first of each group of y values for each X group.
Note that the 1 A 33 is not in the output as it is the second value of A for variable Y where X is 1.
April 27 – 30 | Gaylord Texan | Grapevine, Texas
Walk in ready to learn. Walk out ready to deliver. This is the data and AI conference you can't afford to miss.
Register now and lock in 2025 pricing—just $495!
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.
Ready to level-up your skills? Choose your own adventure.