看板 Statistics 關於我們 聯絡資訊
這是最核心的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