| Date: | Sun, 30 Apr 2006 11:49:10 -0500 |
| Reply-To: | "Gregg P. Snell" <sas-l@DATASAVANTCONSULTING.COM> |
| Sender: | "SAS(r) Discussion" <SAS-L@LISTSERV.UGA.EDU> |
| From: | "Gregg P. Snell" <sas-l@DATASAVANTCONSULTING.COM> |
| Subject: | Re: How to automatically change data name in SET? |
|
| In-Reply-To: | <1146409449.490371.74320@g10g2000cwb.googlegroups.com> |
| Content-Type: | text/plain; charset="us-ascii" |
Lei,
There certainly is. Here is one solution you can write and execute with
nothing more than base SAS to avoid the arcane and obscure scl:
proc sql noprint;
select memname into :datasets separated by " "
from sashelp.vtable
where libname="SUBRO" and memname like "MYDATA%";
quit;
%put datasets=&datasets;
data subro.result;
set &datasets;
run;
You may need to tweak the where clause to be sure it selects only the tables
you are interested in.
Regards,
Gregg Snell
-----Original Message-----
From: SAS(r) Discussion [mailto:SAS-L@LISTSERV.UGA.EDU] On Behalf Of lei
Sent: Sunday, April 30, 2006 10:04 AM
To: SAS-L@LISTSERV.UGA.EDU
Subject: How to automatically change data name in SET?
Hi everyone,
I have a question. I have a few datasets, say mydata1, mydata2,
mydata3, till mydata&M where M is dymically changing according to
month. For example in March M=3, in April M=4.
So I wrote a program like this but got error message
DATA SUBRO.RESULT;
DO I = 1 TO &m;
SET SUBRO.MYDATA&I;
END
RUN;
The effect I want to achieve is that, for example, for m = 3
DATA SUBRO.RESULT;
SET SUBRO.MYDATA1;
SET SUBRO.MYDATA2;
SET SUBRO.MYDATA3;
RUN;
for m = 4, it becomes
DATA SUBRO.RESULT;
SET SUBRO.MYDATA1;
SET SUBRO.MYDATA2;
SET SUBRO.MYDATA3;
SET SUBRO.MYDATA4;
RUN;
Is there any way to do this?
Thank you!
|