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 open! SAS is returning to Vegas for an AI and analytics experience like no other! Whether you're an executive, manager, end user or SAS partner, SAS Innovate is designed for everyone on your team. Register for just $495 by 12/31/2023.
If you are interested in speaking, there is still time to submit a session idea. More details are posted on the website.
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.