作者MOONY135 (談無慾)
看板Statistics
標題Re: [程式] 條件自動新增,SAS或EXCEL都可,拜託幫忙
時間Thu Mar 5 22:55:41 2015
這是最核心的code 接下來只是把一行一行的值丟進來切開而已
(這個還要再寫一個巨集 原諒我懶得改了)
assemble_set就是你要的結果
test就是你的原始檔
然後同年度跟不同年度有不同的處理法 只有不同年度需要切開
EX
/*================================*/
data 同年度 (DROP='時間迄'n) ;
set TEST ;
if (時間迄-時間起)=0 then output;
run;
/*================================*/
/*===================================*/
data 不同年度 ;
set TEST ;
if (時間迄-時間起) > 0 then output;
run;
/*==================================*/
data STEP_1;
set 不同年度;
時間起=year(StartYear);
時間迄=year(EndYear);
run;
data assemble_set;
set step_1 (firstobs=1 obs=1);
run;
data obs_for_Calcu1 ;
set assemble_set;
run;
proc sql noprint ;
select (時間迄-時間起)
into :time_count
from obs_for_Calcu1
;
quit;
%macro Calcu;
%do num=1 %to &time_count;
proc sql;
create table dataadd&num as
select Company,
StartYear,
EndYear,
President,
時間起+&num as '時間起'n ,
'時間迄'n
from obs_for_Calcu1
;
quit;
proc append base=assemble_set data=dataadd#
run;
PROC SQL NOPRINT;
DROP TABLE dataadd&num ;
QUIT;
%end;
%mend Calcu;
%Calcu
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 111.254.118.104
※ 文章網址: https://www.ptt.cc/bbs/Statistics/M.1425567344.A.080.html
※ 編輯: MOONY135 (111.254.118.104), 03/05/2015 23:01:03
推 faceoflove56: 未讀先推,一定仔細研究 感謝 03/05 23:17
推 bugle: 有需要這麼長嗎 = = 03/06 03:38
→ MOONY135: 我用巨集切割的想法 你有更簡單的寫法可以參考嗎 03/06 08:50
→ MOONY135: 我是用一筆一筆APPEND上去的想法喔 03/06 08:53