目录
-
什么是宏
-
怎样编写宏
-
实例
-
Step1. 特例实现
-
Step2. 替换参数,封装为宏
-
Step3. 调用宏
什么是宏
SAS中的宏类似于R中的函数,但SAS没有R灵活。就我的理解,SAS中无论是DATA步还是PROC步几乎每个程序都要指定要操作哪一个数据集,这里的数据集就相当于R中的data.frame,也就是说SAS中几乎只有数据集一种数据格式,而R中除data.frame这种数据对象类型外,还有向量、数组、因子、列表等类型,数据类型更丰富也相对灵活。
那什么是函数呢?回想高中数学的知识,函数是从原象到象的一种映射。我的理解,函数是一种过程,能实现一类功能,给它一个输入,还你一个输出。程序中的函数就是一段可复用的代码。
怎样编写宏
我编写宏/函数的一般习惯是,先用某个具体案例,把想要实现的过程实现;接着把可以变动的参数替换为变量,也就是函数参数;封装起来就得到了想要的函数。也即从特殊到一般的思路。
实例
climate_3
数据集包含一些气象监测数据资料,部分变量存在异常值,例如999999,999900
等,可能是由于监测值缺失,数据清理阶段,需要处理这些异常值,本例选择用中位数替换异常值。由于数据集中的变量很多,逐一处理会很麻烦,因此可以借助宏来