DATA Step, Macro, Functions and more

Using Array to Look Up Values

Reply
Contributor
Posts: 21

Using Array to Look Up Values

Hello, I'm reading the advanced study guide and I got a question with regards to using multiple array to look up values. Below are the sample program:

 

data work.lookup1;
 array Targets{1997:1999,12} _temporary_;
 if _n_=1 then do i= 1 to 3;
 set sasuser.ctargets;
 array mnth{*} Jan--Dec;
 do j=1 to dim(mnth);
 targets{year,j}=mnth{j};
 end;
 end;
 set sasuser.monthsum(keep=salemon revcargo monthno);
 year=input(substr(salemon,4),4.);
 Ctarget=targets{year,monthno};
 format ctarget dollar15.2;
run;

Just curious, what's the advantage of using array over simply merging the data sets? It seems to be this technique isn't very useful. 

 

Do people actually use this technique in practice?

 

 

Super User
Posts: 17,840

Re: Using Array to Look Up Values

Yes it is used, notice this is a temporary array. 

 

A temporary array is reading the dataset once and loading it into memory. Loading it into memory means the lookup can be faster than a standard merge. Merges require you sort both data sets, there's no sort required here. 

 

 

Ask a Question
Discussion stats
  • 1 reply
  • 124 views
  • 0 likes
  • 2 in conversation