The data set 'have' is
Data have;
input a b;
datalines;
1 3
1 3
1 3
2 4
2 5
2 4
2 4
2 4
3 2
3 2
4 7
4 8
5 1
5 1
5 1
5 1
6 8
6 7
6 7
6 7
;
Now I want to create a data set want from have to see if there is change in b within each level of a.
So that my new data set want will have an additional variable Change and should look like this.
Want
a b Change
1 3 No
1 3 No
1 3 No
2 4 Yes
2 5 Yes
2 4 Yes
2 4 Yes
2 4 Yes
3 2 No
3 2 No
4 7 Yes
4 8 Yes
5 1 No
5 1 No
5 1 No
5 1 No
6 8 Yes
6 7 Yes
6 7 Yes
6 7 Yes
Any help would be highly appreciated.
Thanks.
Data have;
input a b;
datalines;
1 3
1 3
1 3
2 4
2 5
2 4
2 4
2 4
3 2
3 2
4 7
4 8
5 1
5 1
5 1
5 1
6 8
6 7
6 7
6 7
;
proc sql;
create table want
as select *, case
when min(b)=max(b) then 'no'
else 'yes'
end as change
from have
group by a;
quit;
proc print;run;
Simple with SQL and remerging :
proc sql;
create table want as
select *, case when range(b)>0 then "Yes" else "No" end as Change
from have
group by a;
quit;
PG
Data have;
input a b;
datalines;
1 3
1 3
1 3
2 4
2 5
2 4
2 4
2 4
3 2
3 2
4 7
4 8
5 1
5 1
5 1
5 1
6 8
6 7
6 7
6 7
;
proc sql;
create table want
as select *, case
when min(b)=max(b) then 'no'
else 'yes'
end as change
from have
group by a;
quit;
proc print;run;
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 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.