1. 首页
  2. 自学中心
  3. 软件
  4. SAS

10个简单好用的SAS编程小技巧

作者:姓谷名歌
链接:https://zhuanlan.zhihu.com/p/21608312
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

今天分享几个常用的,初学者容易忽略的SAS编程小技巧。

(1)让SAS也能用中文变量名

默认的SAS命名规则是无法使用中文等特殊字符作为SAS名,不过我们可以通过validvarname=any系统选项,突破此限制,不仅如此,我们甚至可以通过validmemname=extend系统选项突破数据集名称的限制。

options validmemname=extend validvarname=any ;

1478232426-6429-30

突破命名限制

技虽如此,但并不推荐,在确实无奈的情况下,比如别给了你一个几百个中文变量名的CSV文件,可以考虑救急。

(2)忽略打开SAS数据集提示格式错误

有时候会碰到别人给的SAS数据集,用libname设置好逻辑库后,却仍然无法打开,总是提示格式错误,此时可用nofmterr选项忽略此类错误。

options nofmterr;

(3)一键清理SAS的所有结果

当SAS结果窗口结果太多,希望尽快清理干净,从一个干净清爽的基础重新开始时,dm命令就可以派上用场了。

1478232426-2434-30Results树形目录下结果很多

dm odsresults “clear”continue;

直接运行上面的代码,还给你一个清爽的世界,效果如下。

1478232426-1867-30Results树形目录下结果一键清理

(4)SAS绘图设计器帮你写画图代码

关于SAS绘图,我曾写过系列教程,目录如下:

  1. 如何用SAS画正态、t、卡方以及F分布曲线?
  2. SAS绘图是不真的又难又丑啊?
  3. 多图预警:如何又快又美地用SAS画各种统计图形?
  4. 精雕细琢:一图看尽丑小鸭变白天鹅全过程,手把手教你SAS画图哦!
  5. 怎么画一个丰满又美丽的生存分析K-M曲线图?
  6. 怎么用SAS来玩转统计地图?
  7. 扒一扒一些数据平滑曲线的实现方法
  8. 校正的生存曲线如何绘制:方法总计及SAS代码?

但是真正愿意去用SAS写代码绘图的人较少。其实,我们可以试试%sgdesign,用拖拽的办法绘图,并且可以保存背后的SAS GTL代码为日后所用。

%sgdesign;

1478232426-7268-30sg designer

1478232425-3150-30图及GTL代码

(5)逃离「黑洞」错误

有没有碰到这样一种情况:运行任何SAS代码,SAS都没有任何结果,也没有错误反馈,只是在log里重复显示你的代码。

这就是所谓的「黑洞」错误,你进入了这样一个「黑洞」,任何运行的SAS代码都被他吸入,木有任何反馈!

神马?你还没遇到过,看来历练还不够啊。运行下面一段宏代码,再试试后面其他SAS过程步。

%macrotest;

%put This is a “Balk Hole”test;

%put **** %str(Gu’s Wechat) ****;

%mend ;
%test
/*以下代码不管怎么运行就是没反应啊*/

proc print data=sashelp.class;

run;

怎么破?运行下面代码,可以跳出来!

‘);

%mend;

其实,这个示例还是比较简单的,仔细观察宏定义,发现问题可能就在于单引号不匹配导致。完整的匹配是这样的:

%put **** %str(Gu’s Wechat) ****; %mend ; ‘); %mend;

但是,如果在复杂一点的宏,我们可能就没那么容易一眼找到问题所在了,所幸的是,我们可以用一段万能代码,多次运行,直到出现错误提示,就可以逃离黑洞!这就是:

*’;*”;*);*/;%mend; run;

 

(6)SAS EG/SAS Studio写代码

初学者,可能总是记不住函数,记不住选项。没关系,让SAS自动给我们提示吧。这时,可以试试在SAS EG或者SAS Studio里写代码。

1478232426-7721-30SAS studio

(7) 一键格式化别人凌乱的代码

遇到别人写的无法直视的SAS代码,难道要白白忍受吗?别了,在SAS EG里借助ctrl+i一键缩进代码,从此整整齐齐,一键治好强迫症患者。

1478232426-4741-30整理前

1478232426-6232-30

整理后

 

(8,9,10…) 后续

本来想凑齐十个的,想想我后面预留的几个不是特别拿的出手,那就留给评论,期待大家的贡献吧。

 

原创文章,作者:xsmile,如若转载,请注明出处:http://www.17bigdata.com/10%e4%b8%aa%e7%ae%80%e5%8d%95%e5%a5%bd%e7%94%a8%e7%9a%84sas%e7%bc%96%e7%a8%8b%e5%b0%8f%e6%8a%80%e5%b7%a7/

联系我们

在线咨询:点击这里给我发消息

邮件:23683716@qq.com

跳至工具栏