全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
20422 35
2011-08-22
经过一系列的程序,work临时文件夹里有了很多过程数据集比如a1,a2,a3……;感觉看着不爽想删掉,怎么办?
你可以这么做:
proc delete data=a1 a2 a3;run;
如果你想精简程序为:
proc delete data=a1-a3;run;
那么很遗憾,sas出错了,因为proc delete 读不懂a1-a3;
如果临时数据集很多比如有99个,恰好都是a开头,如果1个1个分开写,估计会累死;那么怎么办?
其实,这么有规律的数据集,你就可以用循环语句了,你可以这么来
%macro dd;
%do i=1 %to 99;
proc delete data=a&i;run;
%end;
%mend;
%dd;
这样你就可以搞定了。
这比上面分开写99个数据集好多了。
如果你是程序控,你一定会觉得不爽,还是觉得烦了,那么有无更简便方法,答案是有的。
利用proc datasets 过程;你可以这么写
proc datasets lib=work ;delete a1-a99;run;
于是世界清静了。proc datasets 比 proc delete 聪明,a1-a99,他懂的!
到此为止,一般人不会再研究了,但是“程序控”还是不爽,因为如果临时数据集如果名字没那么规律怎么办?
其实proc datasets 功能很强大,他可以像 keep 和 drop 那样,drop太多了不好写,可以写keep,只是在datasets里面它用的是save 和 delete。
datasets其他用法,程序控们可以参见http://blog.sina.com.cn/s/blog_5d3b177c0100bamo.html
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2011-8-22 16:09:33
nice!学习了
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2011-8-22 16:41:30
proc delete data=_all_;run;
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2011-8-22 23:49:12
honghejing的不错。

在楼主的基础上,再“控”一点点。

proc datasets lib=work ;delete a: ;  run;
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2011-8-22 23:53:12
继续“控”,效果如honghejing

PROC DATASETS LIB = work  KILL;
RUN;
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2011-8-23 10:10:51
还可以"KILL"? 楼上,学习了!
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群