data DS1;
X=1;
run;
今、WORKにDS1というデータセットがあるとします。
【方法1】
proc datasets lib=work;
delete DS1;
run;
quit;
DATASETSプロシジャのdeleteステートメントでデータセットを指定します。
proc datasets lib=work kill;
run;
quit;
ライブラリの中を全部消したい場合はkillです。
proc datasets lib=work;
save DS1;
run;
quit;
save だとそのデータセットだけ残します。
【方法2】
proc delete data=DS1;
run;
どなたかがブログか論文で紹介されていたと思うのですがdeleteプロシジャというのも
使えます。
【方法3】
proc sql;
drop table DS1;
quit;
sqlプロシジャのdrop tableでも消せます。どうしてもSASでdropがでてくると変数を落とす
イメージが強いですが。
DATA _Null_;
length DSFILE $20.;
rc = filename(DSFILE,pathname("WORK")||"\"||"DS1"||".sas7bdat");
rc = fdelete(DSFILE);
run;
これ好きです。粗暴なコードで素敵です。実戦で使うのは微妙ですが。
ようはSASデータセットそのものをファイルとして
削除してしまおうという発想です。pathname関数でライブラリの実体パスを取得できます。
それにデータセット名と拡張子を繋げてfdeleteで削除します。
消してもエクスプローラーが更新されていないと残像のようにデータセットが表示されるのですが
実際ダブルクリックすると「すでにこのデータセットは存在しません」みたいなかっこいい
メッセージがでて、なくなります。
自分が死んでいることに気付いていない幽霊のようで神秘的です。