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.
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 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.