DATA Step, Macro, Functions and more

SAS Output help

Accepted Solution Solved
Reply
Contributor
Posts: 20
Accepted Solution

SAS Output help

I have a SAS dataset as follows

ID    main_city        city1           city2   city3   city4
123 Newyork        Dallas      Chicago    SF  Atlanta
234 Dallas            Chicago   Newyork   Dallas Atlanta
345 Chicago         Newyork   Atlanta     Austin Boston
456 Denver           Denver     Baltimore Miami  Chicago

 

 

I want a field called city in the output which should have the value of null if none of city1-city4 matches with main city but will have the value of main city if it matches with any of the values of city1-city4.The example output should be as follows.

ID     City        Value1       Value2     Value3     Value4

123                  Dallas  Chicago     SF       Atlanta

234   Dallas     Chicago Newyork  Dallas  Atlanta

345                  Newyork  Atlanta    Austin   Boston

456  Denver    Denver     Baltimore  Miami   Chicago


Accepted Solutions
Solution
‎05-10-2018 01:08 PM
Super User
Posts: 2,049

Re: SAS Output help

[ Edited ]
Posted in reply to nickspencer
data want;
set have;
array t(*) city1-city4;
if main_city in t then city=main_city;
run;

View solution in original post


All Replies
Super User
Posts: 2,499

Re: SAS Output help

Posted in reply to nickspencer

Like this?

city=ifc(whichc(main_city, of city1-city4), main_city, ' ');

Solution
‎05-10-2018 01:08 PM
Super User
Posts: 2,049

Re: SAS Output help

[ Edited ]
Posted in reply to nickspencer
data want;
set have;
array t(*) city1-city4;
if main_city in t then city=main_city;
run;
☑ This topic is solved.

Need further help from the community? Please ask a new question.

Discussion stats
  • 2 replies
  • 158 views
  • 2 likes
  • 3 in conversation