[程式] sas, lag相反指令
之前常常會遇到這個問題, 也有很多熱心的前輩幫助過我
剛好寫了一下這個小巨集, 希望對大家有一點幫助.
/*
front(data=你的資料,varold=想要front的變數,varnew=front完的變數,front=期數)
*/
%macro front(Data,varold,varnew,front);
data &data;
set &data;
tempcount=_n_;
output;
run;
proc sort data=&data;
by decending tempcount;
run;
data &data;
set &data;
&varnew=lag&front(&varold);
run;
proc sort data=&data;
by tempcount;
run;
data &data;
set &data;
drop tempcount;
run;
%mend;
/*小小的測試*/
data temp;
input test;
cards;
1
2
4
4
5
6
7
;
run;
%front(Data=temp,varold=test,varnew=testfront,front=3);
proc print data=temp;
run;
/*輸出*/
test testfront
1 4
2 5
4 6
4 7
5 .
6 .
7 .
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 60.250.86.244
推
05/17 04:20, , 1F
05/17 04:20, 1F
※ 編輯: lsshno1 來自: 60.250.86.244 (05/17 12:53)
推
05/17 13:11, , 2F
05/17 13:11, 2F
推
05/17 21:51, , 3F
05/17 21:51, 3F
→
05/17 23:47, , 4F
05/17 23:47, 4F
推
05/18 08:23, , 5F
05/18 08:23, 5F
→
05/18 08:24, , 6F
05/18 08:24, 6F
推
05/18 08:27, , 7F
05/18 08:27, 7F
推
03/11 23:26, , 8F
03/11 23:26, 8F