DATA Step, Macro, Functions and more

Base SAS Programming

Accepted Solution Solved
Reply
Contributor
Posts: 35
Accepted Solution

Base SAS Programming

Hi all,

 

I have a list of teams with the name of their executive listed first :

Executive: Moe

bob

sarah

Executive2 : Albert

Joan

Rima

Mark

Executive3: Wendy

etc.

I added 2 variables to tag the executives and the teams, so the file looks like

Executive: Moe 1  1

bob             0  1

sarah          0  1

Executive2 : Albert 1 2

Joan            0 2

Rima           0  2

Mark            0 2

Executive3: Wendy   1 3

etc.

I need another varibale associating the name of the executive with their team. I cannot do a proc format because the file is very long and changes very frequently.

 

Executive: Moe 1  1  Executive: Moe 

bob             0  1 Executive: Moe

sarah          0  1 Executive: Moe

Executive2 : Albert  1 2  Executive2 : Albert 

Joan            0 2 Executive2 : Albert 

Rima           0  2 Executive2 : Albert 

Mark            0 2 Executive2 : Albert 

Executive3: Wendy   1 3 Executive3 : Wendy 

 

Thanks


Accepted Solutions
Solution
‎11-27-2015 03:13 PM
Super User
Posts: 19,770

Re: Base SAS Programming

Use a find function to search for the word executive in the string, if found, assign it to a variable. Use Retain to hold the value across rows, until you change it again.

retain executive;
if find(name, 'Executive')>0 then executive=name;

View solution in original post


All Replies
Solution
‎11-27-2015 03:13 PM
Super User
Posts: 19,770

Re: Base SAS Programming

Use a find function to search for the word executive in the string, if found, assign it to a variable. Use Retain to hold the value across rows, until you change it again.

retain executive;
if find(name, 'Executive')>0 then executive=name;
Respected Advisor
Posts: 4,919

Re: Base SAS Programming

Since the executive name is always listed first, simply take the first name of each team and store it in a retained variable

 

data want;
retain;
set have; by team;
length execName $32;
if first.team then execName= name;
run;
PG
Contributor
Posts: 35

Re: Base SAS Programming

Thanks for your input

🔒 This topic is solved and locked.

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

Discussion stats
  • 3 replies
  • 246 views
  • 0 likes
  • 3 in conversation