SAS中文论坛
标题:
如何将sas数据集名作为变量值?
[打印本页]
作者:
shiyiming
时间:
2012-5-13 16:07
标题:
如何将sas数据集名作为变量值?
大家好!
请教一个问题:
我有多个SAS数据集,这些数据集名的一部分是年月,且是连续有序的,由于每个数据集里没有一列时间变量,我想在每一个数据集里增加一个变量,这个变量的值就是所在数据集名字里的时间,如201101,请问该如何实现?
比如数据集 hr201101,我想在这个数据集里增加一个变量date,且让date=201101。
另外,这样的数据集有二十多个。
多谢!
作者:
shiyiming
时间:
2012-5-14 21:35
标题:
Re: 如何将sas数据集名作为变量值?
data hr201101;
x=1;
run;
ods output members=mem;
proc datasets lib=work;
quit;
proc sql;
select name
into :name
from mem
where num=1;
quit;
data hr201101;
set hr201101;
date=substr("&name",3,6);
run;
作者:
shiyiming
时间:
2012-5-15 09:55
标题:
Re: 如何将sas数据集名作为变量值?
[code:1pqzx2z9]/*假设你的逻辑库名为testlib*/
data _null_;
retain prxId;
if _n_=1 then prxId=prxparse('m/\d{6}$/');
set sashelp.vstable(where=(libname='TESTLIB'));
start=prxmatch(prxId,trim(memname));
if start>0;
call execute('data '||trim(libname)||'.'||memname||';set '||trim(libname)||'.'||memname||';length date $6;date ="'||substr(memname,start,6)||'";run;');
run;[/code:1pqzx2z9]
作者:
shiyiming
时间:
2012-5-15 21:35
标题:
Re: 如何将sas数据集名作为变量值?
byes 的方式高效精彩!
学习一下!
欢迎光临 SAS中文论坛 (http://www.mysas.net/forum/)
Powered by Discuz! X3.2