我輩はブロガーではない。ネタもまだない

SASとかDelphiあたりの人様の役に立たないネタを提供します

Windows版SAS エクスプローラの注意点

SASの実行環境でWindowsSASを使っている場合、SASエクスプローラの表示が正しくないことがあるようです。




まずは、以下を実行します。

options dlcreatedir;
libname x "c:\temp" access=readonly;
libname x "c:\temp";
data x.a;
  do i=1 to 100;
    a=put(i,best.);
	output;
  end;
run;

至極単純なコードです。
c:\tempをReadonlyオプションを付けてライブラリ参照名「X」として割り当て、直後にReadonlyオプションを外して再度割り当てています。
これは問題ありません。

続いて、(新しいSASセッションで)以下を実行します。

options dlcreatedir;
libname x "c:\temp" access=readonly;

上記を実行後、以下を実行します。

libname x "c:\temp";
data x.a;
  do i=1 to 100;
    a=put(i,best.);
	output;
  end;
run;


全体としては全く同じプログラムで、全く同じ結果になるはずですが、SASエクスプローラでライブラリ「X」にあるデータセット「A」を右クリックすると、Readonlyオプションが付いていないのに、削除や名前の変更がグレーアウトしているかと思います。

逆(削除ができるが、結果として削除に失敗する)も然りです。
f:id:japelin:20181121152908p:plain


SASとしては不具合ではない、ということなのですが、実行単位で結果が変わるというのは十分不具合ではないのでしょうか。

対処法としては

  • 実行ステップを分けない
  • libnameを消す(上記であれば 「libname x;」)ステートメントを単体で実行
  • 表示→最新の情報に更新

ということになるようです。

テストでステップ毎に分けて実行することは結構多いと思うのですが、こうした不具合は古いデータセットを削除するのに手間がかかり、やっかいです。
まぁdeleteキー押せばいい話なんですが。