您可以定義自己的類型區間與SAS funcions intck和intnx使用的這裏是如何做到這一點:
首先創建平日對你有哪個年的表假期,直到現在(或未來)的一年。
這裏我們將從2014年到2016年的所有平日開始。假設您不想計算週末的日子。如果不是這樣,只需修改代碼,以便不應用「(2:6)中的工作日(日期)」條件。您將獲得一年的全部365天。
data mon_fri;
do date = "01JAN2014"d to "31DEC2016"d;
if weekday(date) in (2:6) then output;
end;
format date date9.;
run;
然後,我們會在表格節假日形成具有所有這些我們剛剛創建的日期表,減去我們有過節。我們將把表放置在名爲myLib的庫中,並將日期列重命名爲「開始」以符合SAS自定義間隔。
libname myLib "some/place/on/your/drive";
data mylib.workdays(RENAME=(date=Begin));
merge mon_fri (in=weekday)
Holidays (in=holiday);
by date;
if weekday and not holiday then output;
run;
現在我們設置一個自定義時間間隔,我們將簡單地稱爲「工作日」。
options intervalds=(workdays=mylib.workdays);
從那裏,你已經離開做的是這樣的:
data dateCalculations;
set mydata;
numOfDays = intck("workdays", theDate, today());
run;
SAS將計算時間(在工作日的數據集線)分離的開始日期的數量的護理(列稱爲theDate)從enddate(今天的日期)。
等voilà!
謝謝,但我需要計算假期+週末 – bobby1232
好吧,那麼只需輸入每個日期,就可以像我那樣計算數據集,並使用該數據集定義自定義間隔!你可以在週末(日期)(1,7)'中獲得週末,然後將這些與你的假期連接起來,按日期排序,重命名爲「開始」,然後你就可以開始了! –
謝謝!真的行! – bobby1232