ハッシュとは,配列のように,複数のデータ値を格納することができるデータ構造体ですが,配列が順に並んだ添え字番号で,各データの格納場所を指定するのに対し,ハッシュでは,参照キーと呼ばれる文字列をユニークキーとしてデータを格納します.アクセスするキーが,添え字番号に対応づけしにくいデータは,配列よりハッシュを使うと効率的に扱えます. also see ハッシュって何?
DATAステップでは,数値型,文字型の変数,および,配列(スカラー変数の集合にオーバーレイ定義します see ARRAYステートメント)が基本的なデータ構造体ですが,ハッシュは,定義済みオブジェクトとして使うことができます.
also see オブジェクトって何?
構文
オブジェクト
- ハッシュオブジェクト
hash
- ハッシュ反復子オブジェクト
hiter
DATAステップステートメント
- DECLAREステートメント
- _NEW_ステートメント
メソッドとアトリビュート
- ADDメソッド
- CHECKメソッド
- DEFINEDATAメソッド
- DEFINEDONEメソッド
- DEFINEKEYメソッド
- DELETEメソッド
- FINDメソッド
- FIRSTメソッド
- LASTメソッド
- NEXTメソッド
- OUTPUTメソッド
- PREVメソッド
- REMOVEメソッド
- REPLACEメソッド
- NUM_ITEMSアトリビュート
実行例
data _null_;
/*サイトのurlを格納するハッシュオブジェクトのインスタンスwebsiteを作る*/
length name $20 url $200;
declare hash website;
website = _new_ hash( );
rc = website.defineKey('name');
rc = website.defineData('url');
rc = website.defineDone();
call missing(name, url); /* 「NOTE:..初期化されていません」を表示させない*/
/*サイト名を参照キーにして,urlを格納する*/
rc = website.add(key: 'google', data: 'http://www.google.co.jp/');
rc = website.add(key: 'yahoo', data: 'http://www.yahoo.co.jp/');
rc = website.add(key: 'infoseek', data: 'http://www.infoseek.co.jp/');
/*サイト名(参照キー)から,urlを取り出す*/
name="yahoo";
rc = website.find();
put name= url=;
name="google";
rc = website.find();
put name= url=;
run;
/*
name=yahoo url=http://www.yahoo.co.jp/
name=google url=http://www.google.co.jp/
*/