sas编程基本知识 (sas程序运行步骤)

sas程序代码简单,如何用sas进行数据分析

1. SAS Enterprise guide

用flowchart来管理程序和数据,能够在一个有条理的框架下对整个项目进行管理。同时,设置autoexec能够实现打开SAS EG后自动运行一些SAS程序,我一般在里面定义一些全局变量,逻辑库名,Macro和Format,这些就不用每次开机都要去运行一遍了。

2. 利用config文件管理程序中依赖于环境的变量。

自己在项目逻辑库所定义的文件夹里面新建一个config文件,设为任意一种可以读取的格式。利用这个文件储存那些频繁改动的信息,比如各种文件的路径名,一些经常更改的参数等等,都存在config文件里面。每次运行的时候,通过事先写好的SAS程序来读取config文件中,来给SAS程序提供参数。如果需要改动这些参数,直接在config文件里面修改就行,不需要修改sas程序本身。

3. 利用外部的数据字典来管理SAS数据集的变量名,标签和格式等。

在外部设置一个数据字典,储存相应数据集的变量信息,并写好相应的宏程序。如果需要更改变量名或者标签或数据类型等,直接在数据字典里面进行修改,然后在SAS中运行宏程序读取字典,并自动修改字典对应的数据集。

4. 分解问题,缩小宏程序的规模。

一个宏程序只解决一个具体的问题,如果一段宏程序过长,会影响重复使用的效率,降低可读性。虽然网上和SAS的Paper上看见的大多是一大段Macro来实现一个复杂的功能,但我在平时写宏的时候还是倾向于分解成很多块,然后有一个主要的宏作为框架来调用其他宏程序。这样容易debug,并且其他人使用的时候也能比较容易理解你的逻辑和意图。另外多用%local来限制宏变量的作用域。

5. 考虑程序的Robustness。

比如要实现一个文献中的统计方法,如果只是考虑本次数据集的结构,那么下次换了数据集又得修改宏程序。如果预先考虑到一些细节,比如允许变量的个数,变量是数值型还是字符型,如果有缺失值则如何处理,某些参数是硬编码到程序里,还是放在参数里可以自由修改,如果设置了不合理的参数,应该怎样提醒等等。

6. 写好注释,与合作者约定好规范。

特别是宏程序,需要在开头的地方写好每一个参数是什么意思,接受什么类型的数据,宏程序实现的功能是什么。此外,变量名尽量起得长一些,可以考虑驼峰命名或者下划线连接,不然一堆a,b,c自己都忘了是什么意思了。还有与合作的人约定好一些命名规范,缩进和注释等等,毕竟看别人写的东西,尤其是SAS,尤其心累。

End.

作者:大象

来源:知乎