12/29/2007
SAS程序员必备的十大技巧
SUGI27(2002)有一篇被广泛引用的文章,就两页纸,Doug Zirbel的10 Things Experienced SAS® Programmers Don’t Know – But Should(“SAS程序员不知道但必须知道的10件事”),题目挺拉风,讲的是对有经验的SAS程序员的一次非正式调查,要他们列出SAS程序员需要的一些技巧。其实一共列出了22条,当然前10条是最重要的:
- Macros—basic knowledge of macro language——对SAS宏语言的基本了解。这里作者推荐的主打文档当然是SAS Manuals中的SAS Macro language,以及SAS Guide to Macro Processing,然后还有Little SAS Book和Carpenter's Complete Guide to the SAS Macro Language
- Data Step—basic knowledge of data step——对SAS数据步的基本了解,参见一篇SUGI21的文章,Thomas Miron的The Secret Lift of the Data Step
- Data file manipulation—INFILE, UPDATE, SET intricacies etc ——数据文件操作语句,如infile、update、set等
- ODS——SAS输出传送系统(Output Delivery System)
- Efficiency——编程效率
- Data Step Vector—How it works——理解数据步的运行原理,参见2
- Macros—Knowing how to write macros that write SAS programs——如何写宏语句
- System Development Life Cycle process——这里讲软件开发流程了,作者甚至列出了Steve McConnell的代码大全(Code Complete),在程序员中流传甚广。
- SAS Help—How to get it——利用SAS的联机帮助文档
- Proc Report——程序步,设计报表
- SQL Dictionary tables—basic of retrieving SAS metadata— 用SQL语句管理数据词典(原数据,metadata),可以参见Frank C. DiIorio 和Nancy J. Michal的Data about Data: An Introduction to Dictionary Tables
- Proc Summary/Means——程序步,汇总和均值
- Debugging Techniques-DEBUG facility and other techniques——程序调试
- Proc SQL——SQL语句
- Structured programming concepts——结构化编程
- Proc Format——格式输入语句
- Relational Database Design——数据库设计
- Web technology—HTML, JavaScript, SAS IntrNet, ect——网络技术,一些脚本语言
- Your Operating System native (and other) languages—REXX, Unix scripts, VBScript, syncsort——跟操作系统相关的一些脚本语句
- Proc Transpose——数据转置
- Data step reports—"Data _null_" report writing——
- SCL—SCL Functions usable in e.g.,Base SAS data steps——屏幕控制语句
上面10,或者22条,要强调的都是,SAS Base是一个好的SAS程序员需要掌握的几乎所有的东西。