SAS编程技巧(一)
这段时间的工作中遇到了一些小问题,今天把一些编程技巧分享给大家,也可以说是避坑指南,哈哈!
1.在使用format给变量赋空值
在使用format给对应的变量赋空值的时候要用单引号加空格‘ ’或者双引号“”,而不能直接使用‘’,如果直接使用‘’,就会出现结果为’的情况。
proc format;
value aa
1 = '男'
2 = '女'
/* 3 = " "*/
/* 3 = ' '*/
3 = ''
;
run;
data class;
length name $8;
input name age sex;
cards;
张三 18 1
李四 20 2
王五 19 3
;
run;
data class1;
set class;
sexc=put(sex,aa.);
run;
2.省略data=
在对上一个数据集进行操作的时候可以省略data=这一步,比如我们要对刚才生成的class1数据集进行排序,可以这样写:
proc sort data=class1;
by name;
run;
也可以写成:
proc sort;
by name;
run;
这个方法只能对上一步生成的数据集进行操作,同样适用于其他proc步。
3.警惕“套娃”
index函数在我们的工作中经常使用,主要是判断某个字符串是否在变量中出现,这时候需要注意的是我们指定的字符串是否是唯一的,比如我们想找的是“药物治疗”,但是变量中有“非药物治疗”,这时候就会出现误判的情况。这个错误在工作中很难发现,要格外地小心。
4.让SAS也能用中文变量名
默认的SAS命名规则是无法使用中文等特殊字符作为SAS名,不过我们可以通过validvarname=any系统选项,突破此限制,不仅如此,我们甚至可以通过validmemname=extend系统选项突破数据集名称的限制。
optionsvalidmemname=extend validvarname=any;