2016-02-01 107 views
1

有沒有辦法來定義,其中函數的輸出必須要返回的格式?輸出格式SAS功能

例如,如果我定義這個功能

proc fcmp outlib=WORK.funcs.Dates; 
    function mytoday(); 
     return (today()); 
    endsub; 
RUN; 
OPTIONS APPEND=(cmplib=WORK.FUNCS); 

然後,我用它在數據一步...

data test; 
    a=today(); 
    b=mytoday(); 
run; 

我得到BEST12。格式。

a   b 
20485  20485 

我必須明確地設置格式是這樣的:

data test; 
    format a b yymmdd10.; 
    a=today(); 
    b=mytoday(); 
run;  

    a   b 
2016-02-01 2016-02-01 

我想答案是否定的。但我想確定。

感謝

回答

1

你是對的,你不能格式應用到一個函數的輸出。

您可以改爲創建一個能夠產生賦值語句和格式語句的宏。

%macro mytoday(varname); 
    &varname = today(); 
    format &varname date9.; 
%mend mytoday; 
data test; 
    %mytoday(b) 
run; 
+0

非常感謝你湯姆。 – gpfrepo