前のページ|次のページ

INTCINDEX関数

周期インデックスを返します。この関数には、日付、時間または日時の間隔と値を指定します。

カテゴリ: 日付と時間

構文

必須引数

interval

WEEK、MONTHまたはQTRなどの間隔名が含まれる文字定数、変数または式を指定します。Intervalは、大文字または小文字で表示できます。intervalに使用可能な値のリストについては、Intervals Used with Date and Time Functions (SAS言語リファレンス: 解説編)を参照してください。

ヒント
intervalが文字定数の場合、値を引用符で囲みます。
ヒント
intervalに有効な値は、date-time-valueが日付、時間または日時の値のいずれであるかによって異なります。
より複雑な間隔を指定するには、基本間隔名に乗数とシフトインデックスを組み合わせて使用できます。間隔名の一般的な形式を次に示します。

interval<multiple.shift-index>

間隔名の3つの部分は次のとおりです。

interval

基本間隔の種類の名前を指定します。たとえば、YEARで年間隔を指定します。

multiple

乗数を指定します(省略可能)。基本タイプの間隔の期間に対する倍数と同等の間隔を設定します。たとえば、間隔YEAR2は2年の期間の間隔、つまり隔年です。

参照項目 乗数とシフト間隔を使用した日時の増分 詳細については、を参照してください。

shift-index

シフトインデックスを指定します(省略可能)。間隔の開始時点を指定したサブ期間にシフトします。たとえば、YEAR.3で、各カレンダ年の3月1日に開始して翌年の2月末に終了するようにシフトされた年間隔を指定します。

制限事項 シフトインデックスは、間隔全体のサブ期間の数以下にする必要があります。たとえば、2年間隔では25番目の月は存在しないため、YEAR2.24は使用できますがYEAR2.25はエラーになります。
デフォルトのシフト期間が間隔と同じ場合、複数期間の間隔のみを任意のシフトインデックスでシフトできます。たとえば、MONTH間隔はデフォルトではMONTHの期間でシフトされるため、シフトインデックスで月間隔はシフトできません。ただし、各MONTH2間隔には2つのMONTH間隔が含まれるため、シフトインデックスで2か月間隔をシフトできます。たとえば、間隔名MONTH2.2では、偶数月の1日目に開始する2か月の期間が指定されます。
参照項目 乗数とシフト間隔を使用した日時の増分 詳細については、を参照してください。

date-time-value

指定した間隔の期間を表す日付、時間または日時の値を指定します。

詳細

INTCINDEX関数は、季節周期のインデックスを返します。この関数には、間隔とSAS日付、時間または日時の値を指定します。たとえば、間隔がMONTHの場合、データ内の各オブザベーションは特定の月に対応します。月単位のデータは、1年間で周期的とみなされます。1年には12か月あるため、季節周期(年)内の間隔(月)数は12です。WEEKは、DAYと等しい間隔の季節周期です。2013年9月1日はその年の35番目の週で6番目の曜日なので、この例では36の値が返されます。
cycle_index=intcindex('day', '01SEP2013'd );
日付間隔と時間間隔の操作の詳細については、日付間隔と時間間隔を参照してください。
INTCINDEX関数は、小売業界によるカレンダの間隔でも使用できます。これらの間隔はISO 8601に準拠します。これらの間隔のリストについては、Retail Calendar Intervals: ISO 8601 Compliant (SAS言語リファレンス: 解説編)を参照してください。

比較

INTCINDEX関数は周期インデックスを返しますが、INTINDEX関数は季節インデックスを返します。
この例では、INTCINDEX関数は年間通算週を返します。
cycle_index=intcindex('day', '04APR2013'd);
この例では、INTINDEX関数は曜日を返します。この例では、次のように指定します。
index=intindex('day', '04APR2013'd);
この例では、INTCINDEX関数は時刻を返します。
cycle_index=intcindex('minute', '01Sep2013:00:00:00'dt);
この例では、INTINDEX関数は分を返します。
index=intindex('minute', '01Sep2013:00:00:00'dt);
intseas(intcycle('interval'));では、INTSEAS関数はintcindex('interval',date);によって返される最大数を返します。

SASステートメントとその結果を次に示します。
SASステートメント
結果
cycle_index1=intcindex('day', '01SEP2013'd);
put cycle_index1;
36
cycle_index2=intcindex('dtqtr', '23MAY2013:05:03:01'dt);
put cycle_index2;
1
cycle_index3=intcindex('tenday', '13DEC2013' d);
put cycle_index3;
1
cycle_index4=intcindex('minute', '23:13:02't);
put cycle_index4;
24
var1='semimonth';
cycle_index5=intcindex(var1, '05MAY2013:10:54:03'dt);
put cycle_index5; 
1

関連項目:

前のページ|次のページ|ページの先頭へ