全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
2437 2
2014-04-25
如题。本人有大约40个variables,现在想为每一个variable建立前12个和后12的变量,请教大神有没有快速的方法。



     OBS  TIME   VAR1 VAR2 VAR3 ....       VAR40

建立完成之后应该有


   OBS TIME  VAR1 VAR1_LAG1 VAR1_LAG2 ....   VAR1_LAG12 VAR1_LEAD1 VAR1_LEAD2 ... VAR1_LEAD12   ...  VAR12
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2014-4-25 23:48:09
复制代码
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2014-4-25 23:58:46
proc sql noprint; select name into :vars from dictionary.columns where libname=upcase("&yourlibrary") and memname=upcase("&tbl") and name not in("OBS", "TIME");quit;
%macro aa(opt);
%let nvars=%sysfunc(count(&vars));
%do vi=1 %to &nvars;
%let var=%sysfunc(scan(&vars, &vi));
%do i=1 %to 40;
%do lagn=1 %to 12;
&var._&opt&lagn=lag&lagn(&var);
%end;
%end;
%end;
%mend;
proc sort data=a ; by obs;run;
data b;
set a;
%aa(lag);
run;
proc sort data=b; by obs descending;run;
data b;
set b;
%aa(lead);
run;
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群