季節インデックスを返します。この関数には、日付、時間または日時の間隔と値を指定します。
カテゴリ: | 日付と時間 |
WEEK、MONTHまたはQTRなどの間隔名が含まれる文字定数、変数または式を指定します。Intervalは、大文字または小文字で表示できます。intervalに使用可能な値のリストについては、Intervals Used with Date and Time Functions (SAS言語リファレンス: 解説編)を参照してください。
間隔名の3つの部分は次のとおりです。
基本間隔の種類の名前を指定します。たとえば、YEARで年間隔を指定します。
乗数を指定します(省略可能)。基本タイプの間隔の期間に対する倍数と同等の間隔を設定します。たとえば、間隔YEAR2は2年の期間の間隔、つまり隔年です。
参照項目 | 乗数とシフト間隔を使用した日時の増分 詳細については、を参照してください。 |
シフトインデックスを指定します(省略可能)。間隔の開始時点を指定したサブ期間にシフトします。たとえば、YEAR.3で、各カレンダ年の3月1日に開始して翌年の2月末に終了するようにシフトされた年間隔を指定します。
制限事項 | シフトインデックスは、間隔全体のサブ期間の数以下にする必要があります。たとえば、2年間隔では25番目の月は存在しないため、YEAR2.24は使用できますがYEAR2.25はエラーになります。 |
デフォルトのシフト期間が間隔の種類と同じ場合、複数期間の間隔のみを任意のシフトインデックスでシフトできます。たとえば、MONTHの種類の間隔はデフォルトではMONTHのサブ期間でシフトされるため、シフトインデックスで月間隔をシフトできません。ただし、各MONTH2間隔には2つのMONTH間隔が含まれるため、シフトインデックスで2か月間隔をシフトできます。たとえば、間隔名MONTH2.2では、偶数月の1日目に開始する2か月の期間が指定されます。 | |
参照項目 | 乗数とシフト間隔を使用した日時の増分 詳細については、を参照してください。 |
指定した間隔の期間を表す日付、時間または日時の値を指定します。
intindex('month', '01DEC2012'd);
intindex('qtr', '01JAN2013'd); intindex('qtr', '31MAR2013'd);
intindex('day', '07DEC2012'd);
intindex('month', '01DEC2012'd);
では、1年の間隔には12か月があり12月はその年の12番目の月であるため、12の値を返します。MONTH間隔にはSAS日付値が必要です。週間隔には7日あり、2012年12月7日は金曜日で6番目の曜日なので、次の例では6の値が返されます。intindex('day', '07DEC2012'd);
intindex('qtr', '01JAN2013:00:00:00'dt);
intindex('dtmonth', '01DEC2013:00:00:00'dt);
index=intindex('day', '04APR2013'd);
cycle_index=intcindex('day', '04APR2013'd);
index = intindex('minute', '01Sep2012:06:05:04'dt);
cycle_index = intcindex('minute', '01Sep2012:06:05:04'dt);
intseas('interval');
では、INTSEASはintindex('interval', date);
によって返される最大数を返します。
SASステートメント
|
結果
|
---|---|
interval1=intindex('qtr', '14AUG2013'd); put interval1; |
3 |
interval2=intindex('dtqtr', '23DEC2013:15:09:19'dt); put interval2; |
4 |
interval3=intindex('hour', '09:05:15't); put interval3; |
10 |
interval4=intindex('month', '26FEB2013'd); put interval4; |
2 |
interval5=intindex('dtmonth', '28MAY2013:05:15:00'dt); put interval5; |
5 |
interval6=intindex('week', '09SEP2013'd); put interval6; |
37 |
interval7=intindex('tenday', '16APR2013'd); put interval7; |
11 |
data weekly; *do year=2007 to 2012; year=2004; NewYear=holiday('NEWYEAR', year); do i=-5 to 5; date=intnx('week', NewYear, i); output; end; *end; format date date.; format NewYear date.; run; /* The standard leap week is the first week of year. */ /* An alternative method uses a third argument:leap week is week 53. */ title "Using a Third Argument to Control Weekly Seasonality"; data LeapWeekExample; set weekly; StandardIndex=intindex('week', date); IndexWithLeap=intindex('week', date, 53); run; proc print; run; /* Using a number and an interval can be equivalent for the third argument. */ title "Using the Third Argument as a Number or Cycle"; data Equiv3rdArg; set sashelp.air(obs=12); defaultSeasonal=intindex('MONTH', date); SeasonalArg12=intindex('MONTH', date, 12); SeasonalArgYear=intindex('MONTH', date, 'YEAR'); format date date.; run; proc print; run; /* Use the third argument for non-standard seasonality. */ title "Using the Third Argument for Non-Standard Seasonality"; data NonStandardSeasonal; set sashelp.air(obs=24); /* Standard Index - MONTH is Yearly Seasonal */ StandardIndex=intindex('MONTH', date); SemiYrIndex=intindex('MONTH', date, 'SEMIYR'); Index6=intindex('MONTH', date, 6); format date date.; run; proc print; run;