Please I need assistance:
I have
Data ABC;
X Y
2 a
1 a
4 b
3 b
;
I want maximum of X for each of Y (maximum based on criteria).
so output would be
NEW
X Y
2 a
4 b
Thanks in advance!
Try this:
DATA ABC;
x=2; y='a'; output;
x=1; y='a'; output;
x=4; y='b'; output;
x=3; y='b'; output;
RUN;
PROC SQL;
CREATE TABLE want AS
SELECT max(x) as max_x, y
FROM ABC
GROUP BY y;
QUIT;
Try this:
DATA ABC;
x=2; y='a'; output;
x=1; y='a'; output;
x=4; y='b'; output;
x=3; y='b'; output;
RUN;
PROC SQL;
CREATE TABLE want AS
SELECT max(x) as max_x, y
FROM ABC
GROUP BY y;
QUIT;
Thank you all! I just used the first solution given and it worked, I appreciate your help!
The simplest way is:
proc sql;
create table NEW as
select max(X) as X, Y
from ABC
group by Y;
quit;
If result not appearance is acceptable:
proc means data=have max; class y; var x; run;
I would recommend becoming familiar with the procs such as means as I can add large number of statistics such a min, median, mean, standard deviation, range, skewness, kurtosis, a number of percentiles and such by adding them to the list where MAX appears above.
Registration is now open for SAS Innovate 2025 , our biggest and most exciting global event of the year! Join us in Orlando, FL, May 6-9.
Sign up by Dec. 31 to get the 2024 rate of just $495.
Register now!
Learn the difference between classical and Bayesian statistical approaches and see a few PROC examples to perform Bayesian analysis in this video.
Find more tutorials on the SAS Users YouTube channel.
Ready to level-up your skills? Choose your own adventure.