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