SAS編程技巧(一)

這段時(shí)間的工作中遇到了一些小問(wèn)題,今天把一些編程技巧分享給大家,也可以說(shuō)是避坑指南,哈哈!
1.在使用format給變量賦空值
在使用format給對(duì)應(yīng)的變量賦空值的時(shí)候要用單引號(hào)加空格‘ ’或者雙引號(hào)“”,而不能直接使用‘’,如果直接使用‘’,就會(huì)出現(xiàn)結(jié)果為’的情況。
253055-1.png

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=
在對(duì)上一個(gè)數(shù)據(jù)集進(jìn)行操作的時(shí)候可以省略data=這一步,比如我們要對(duì)剛才生成的class1數(shù)據(jù)集進(jìn)行排序,可以這樣寫(xiě):
proc sort data=class1;
    by name;
run;
也可以寫(xiě)成:
proc sort;
    by name;
run;
這個(gè)方法只能對(duì)上一步生成的數(shù)據(jù)集進(jìn)行操作,同樣適用于其他proc步。
3.警惕“套娃”
index函數(shù)在我們的工作中經(jīng)常使用,主要是判斷某個(gè)字符串是否在變量中出現(xiàn),這時(shí)候需要注意的是我們指定的字符串是否是唯一的,比如我們想找的是“藥物治療”,但是變量中有“非藥物治療”,這時(shí)候就會(huì)出現(xiàn)誤判的情況。這個(gè)錯(cuò)誤在工作中很難發(fā)現(xiàn),要格外地小心。
4.讓SAS也能用中文變量名
默認(rèn)的SAS命名規(guī)則是無(wú)法使用中文等特殊字符作為SAS名,不過(guò)我們可以通過(guò)validvarname=any系統(tǒng)選項(xiàng),突破此限制,不僅如此,我們甚至可以通過(guò)validmemname=extend系統(tǒng)選項(xiàng)突破數(shù)據(jù)集名稱的限制。
optionsvalidmemname=extend validvarname=any;


請(qǐng)前往:http://lygongshang.com/TeacherV2.html?id=166