Strange. SAS didn't change, but you are getting different behavior. I have no idea what has changed on your system, but remember that memory is shared among all applications. If you have a big PDF file open, an email program running, or other applications, those are all using memory, too. However, maybe I can solve the immediate problem of getting your program to run. Instead of dwn=choose(wn=.,0,wn); try this: dwn = wn; /* copy wn */ idx = loc(dwn=.); /* find missing */ if ncol(idx)>0 then dwn[idx]=0; /* replace with zeros */ The above code can be even more memory-efficient if you are willing to overwrite the original copy of wn: idx = loc(wn=.); if ncol(idx)>0 then wn[idx]=0; /* overwrite wn */ Of course, this might just move the out-of-memory error to another line of the program.
... View more