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;
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!
Still thinking about your presentation idea? The submission deadline has been extended to Friday, Nov. 14, at 11:59 p.m. ET.
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.
Ready to level-up your skills? Choose your own adventure.