WORKの下に一時ライブラリを作ることで中間データセットなどを別管理にしつつ,WORKと同じく閉じたら消える状態にする方法


%let WORKPATH = %sysfunc(pathname(WORK));
options DLCREATEDIR;
libname outtemp "&WORKPATH\temp";
options NODLCREATEDIR;

 

👆

こうすると

%let WORKPATH = %sysfunc(pathname(WORK));

で マクロ変数 WORKPATHに pathname関数の働きで,WORKが物理的に存在している場所が入ります

options DLCREATEDIR;

により,存在しないディレクトリにlibnameを切ることで,フォルダ自体が新規作成され,ライブラリ登録されます

libname outtemp "&WORKPATH\temp";

でWORKの下にさらにフォルダをつくって そこをouttempというライブラリ名にしてるわけです

 

画像

 

思い出してください.WORKフォルダはSASを閉じるとその中に存在するすべてを消し去ることを.

つまり,WORKの下に作られたサブフォルダも同時に消えるので,すなわち WORKと同じ性質をもったサブライブラリをもてるわけです 

つまり,マクロとかで なっがーーい処理をかいて,たくさん作った中間データセットでWORKがあふれて意味がわからなくなることありますよね

もちろんマクロの中で最後に中間データセットを消してもいいですが,そうすると途中経過が追いにくいですよね

そういうときは作業を全部 tempでやって,最後の欲しいデータセットだけproc copyとかで WORKにだせば

見かけ上,マクロ実行してもWORKには最後に欲しい者だけがはいって,途中経過をみたいときだけtempをみればいいわけです

 

 

 

SAS OnDemand for Academics / SAS 9.4 利用手順

非商用目的で 無料で使えるSAS OnDemand for Academicsについて,始め方がわからないという方は,あるいはインストール版のSAS9.4について,インストールの仕方にとまどうって方が多いということで,利用手順をスライドにしてアップしてくれた方がいるので紹介させてくださいませ

https://www.docswell.com/s/NorihiroSuzuki/KNLD4E-SAS_ODA_9.4_installguide#p1