name<multiplier><.shift-index>
間隔
|
説明
|
---|---|
DAY3
|
3日間隔
|
WEEK
|
日曜日を開始時点とする週間隔
|
WEEK.7
|
土曜日を開始時点とする週間隔
|
WEEK6.13
|
第2金曜日を開始時点とする6週間隔
|
WEEK2
|
第1日曜日を開始時点とする隔週間隔
|
WEEK1.1
|
WEEKと同じ
|
WEEK.2
|
月曜日を開始時点とする週間隔
|
WEEK6.3
|
第1火曜日を開始時点とする6週間隔
|
WEEK6.11
|
第2水曜日を開始時点とする6週間隔
|
WEEK4
|
第1日曜日を開始時点とする4週間隔
|
WEEKDAY
|
土曜日と日曜日を週末、5日間を就業日とする週
|
WEEKDAY1W
|
日曜日を週末日、6日間を就業日とする週
|
WEEKDAY35W
|
火曜日と木曜日を週末日とし、5日間を就業日とする週(Wで3日目と5日目を週末日に指定)
|
WEEKDAY17W
|
WEEKDAYと同じ
|
WEEKDAY67W
|
金曜日と土曜日を週末日とする5日間の週
|
WEEKDAY3.2
|
土曜日と日曜日を週末日とする3平日間隔(間隔は1960年1月1日を基準として調整されます。同一年にネストされる間隔については、1960年1月1日にさかのぼって調整の必要はありません)
|
TENDAY4.2
|
TENDAY単位の2番目を開始時点とする40日単位
|
SEMIMONTH2.2
|
月の16日目から翌月の15日目までの間隔
|
MONTH2.2
|
2月-3月、4月-5月、6月-7月、8月-9月、10月-11月、12月-1月(翌年)
|
MONTH2
|
1月-2月、3月-4月、5月-6月、7月-8月、9月-10月、11月-12月
|
QTR3.2
|
1960年2月1日、1960年11月1日、1961年8月1日、1962年5月1日と続く9か月間隔
|
SEMIYEAR.3
|
6か月間隔、3月-8月および9月-2月
|
YEAR.10
|
10月に開始する会計年度
|
YEAR2.7
|
偶数年の7月を開始時点とする隔年間隔
|
YEAR2.19
|
奇数年の7月を開始時点とする隔年間隔
|
YEAR4.11
|
うるう年の11月を開始時点とする4年間隔(米国の大統領選挙の周期)
|
YEAR4.35
|
うるう年間の偶数年の11月を開始時点とする4年間隔(米国の中間選挙の周期)
|
DTMONTH13
|
1960年1月1日午前零時を開始時点とする13か月間隔。1957年11月1日、1958年12月1日、1960年1月1日、1961年2月1日、1962年3月1日など
|
HOUR8.7
|
午前6時、午後2時および午後10時を開始時点とする8時間間隔 (就業シフトに使えます)
|
options intervalds=(StoreHours, StoreHoursDS);詳細については、INTERVALDS= System Option (SASシステムオプション: リファレンス)を参照してください。
options intervalds=(StoreHours=StoreHoursDS); data StoreHoursDS(keep=begin end); start = '01JAN2009'd; stop = '31DEC2009'd; do date = start to stop; dow = weekday(date); datetime=dhms(date,0,0,0); if dow not in (1,7) then do hour = 9 to 17; begin=intnx('hour',datetime,hour,'b'); end=intnx('hour',datetime,hour,'e'); output; end; else if dow = 7 then do hour = 9 to 12; begin=intnx('hour',datetime,hour,'b'); end=intnx('hour',datetime,hour,'e'); output; end; end; format begin end datetime.; run; title 'Store Hours Custom Interval'; proc print data=StoreHoursDS (obs=18); run;
options intervalds=(FiscalMonth=FMDS); data FMDS(keep=begin season); start = '10JAN1999'd; stop = '10JAN2001'd; nmonths = intck('month',start,stop); do i=0 to nmonths; begin = intnx('month',start,i,'S'); season = month(begin); output; end; format begin date9.; run; proc print data=FMDS; title 'Fiscal Month Data'; run;
data sales(keep=date sales); do date = '01JAN2000'd to '31DEC2000'd; month = MONTH(date); dayofmonth = DAY(date); sales = 0; if (dayofmonth lt 10) then sales= month/9; output; end; format date monyy.; run; proc timeseries data=sales out=dataInFiscalMonths; id date interval=FiscalMonth accumulate=total; var sales; run; proc timeseries data=sales out=dataInStdMonths; id date interval=Month accumulate=total; var sales; run; data compare; merge dataInFiscalMonths(rename=(sales=FM_sales)) dataInStdMonths(rename=(sales=SM_sales)); by date; run; title 'Standard Monthly Data and Fiscal Month Data'; proc print data=compare; run;
options intervalds=(BankingDays=BankDayDS); data BankDayDS(keep=begin); start = '15DEC1998'd; stop = '15JAN2002'd; nwkdays = intck('weekday',start,stop); do i = 0 to nwkdays; begin = intnx('weekday',start,i); year = year(begin); if begin ne holiday('NEWYEAR',year) and begin ne holiday('MLK',year) and begin ne holiday('USPRESIDENTS',year) and begin ne holiday('MEMORIAL',year) and begin ne holiday('USINDEPENDENCE',year) and begin ne holiday('LABOR',year) and begin ne holiday('COLUMBUS',year) and begin ne holiday('VETERANS',year) and begin ne holiday('THANKSGIVING',year) and begin ne holiday('CHRISTMAS',year) then output; end; format begin date9.; run; data CountDays; start = '01JAN1999'd; stop = '31DEC2001'd; ActualDays = intck('DAYS',start,stop); Weekdays = intck('WEEKDAYS',start,stop); BankDays = intck('BankingDays',start,stop); format start stop date9.; run; title 'Methods of Counting Days'; proc print data=CountDays; run;
OBS -2 Start of partial CUSTBASE4.2 interval observation: -(4-2) = -2. -1 0 1 End of partial CUSTBASE4.2 interval observation: This is the first observation in the data set. 2 Start of first complete CUSTBASE4.2 interval. 3 4 5 End of first complete CUSTBASE4.2 interval. 6 Start of 2nd CUSTBASE4.2 interval.
INTNX('CUSTBASE4.2', date-at-obs1, 0, 'B');
INTINDEX ('interval', date);
Obs begin season 1 27DEC59 52 2 03JAN60 1 3 10JAN60 2 4 17JAN60 3 5 24JAN60 4 6 31JAN60 5
INTINDEX ('CUSTWEEK', '03JAN60'D);
INTSEAS ('CUSTWEEK');
INTCYCLE ('CUSTWEEK');
INTCINDEX ('CUSTWEEK', '27DEC59'D);
INTCINDEX('CUSTWEEK', '03JAN60'D)
INTSHIFT ('CUSTBASE');
またはINTSHIFT ('CUSTBASEm.s');
を実行すると、CUSTBASEの値が返されます。