由上一篇可知,在SAS做資料處理與分析的過程中,是由一連串的DATA STEP與PROC STEP所組合而成,而不論是哪一個STEP,又皆是由數個敘述句所組成的,以下將針對敘述句與SAS變數做介紹,以及說明應注意的事項。
1)敘述句
在SAS系統中,敘述句為構成STEP的最小單位,是以一個關鍵字為開始,並以一個分號“;”作為結束,像是下方的DATA…;,或是INPUT……;。為了增加語法的易讀性,以下有幾點習慣上的建議供大家參考。
1.盡量一列保持一句敘述句
2.關鍵字的所有字母以大寫表示
3.變數及資料集的名稱則以小寫呈現
4.敘述句中的每個項目之間至少有一空格
5.可配合一些註解說明敘述句,通常呈現的方式有兩種(如下圖)
2)變數名稱
SAS敘述句中所出現的名稱,有以下幾點需注意
1.字元長度不可超過32個字元
2.名稱第一個字元需“a, b, …, z, A, B, …, Z”為字元變數或底線“_”
3.變數名稱中間不得有空白或特殊符號
4.欲宣告變數為文字變數時,必須在變數名稱後加上“$”(如下圖name)
3)系統提供變數列舉的快速輸寫方式
以上圖為例,變數由左至右依序為x1,x2,x3,name,sex,y,z,x4
1.列舉格式「VARm - VARn」,列舉前置字元的相同變數,ex:x1-x4,包含x1,x2,x3,x4而直接跳過name,sex,y,z
2.列舉格式「VARm -- VARx」,列舉前置字元的相同變數,ex:x1--x4,包含x1,x2,x3, name,sex,y,z,x4,會將x1到x4之間的所有變數納入
3.列舉格式「VARm -NUMERIC- VARx」,列舉變數時所作限制,只列VARm到VARn之間數值變數的部分,ex:x1-NUMERIC-x4,會將x1到x4之間的所有數值變數納入,包含x1,x2,x3,y,z,x4
4.列舉格式「VARm -CHARACTER- VARx」,列舉變數時所作限制,只列VARm到VARn之間文字變數的部分,ex:x1-CHARACTER-x4,會將x1到x4之間的所有文字變數納入,包含name,sex
4)常數
在SAS中通常被應用在指派、累加、IF、SELECT等敘述句中
1.數值常數
通常以10進位的表示方式為主,ex:x1=100,亦即指派x1等於一常數100。另外也有十六進位的表示方式,是利用0-9和A-F組合而成,並以X做為結束,ex:x2=0B1X,0B1X為11*16+1*1=177,此處的B代表11。
2.字元常數
以單引號或雙引號含括之,ex:name = ‘TOM’; name = “TOM”
3.時間日期常數
亦以單引號含括之,但必須在期末端加上T(time)、D(date)or DT(time_date)表示之,ex:’1JULY1990’D;’12:35’T;’1JULY1990:12:35’DT
5)運算元
1.算術運算元
包含加(+)、減(-)、乘(*)、除(/)、冪次(**),冪次表示次方的運算,ex:4**4=16
2.關係運算元
包含大於(>)、小於()、等於(=)、大於等於(>=)、小於等於()、不等於(^=)
3.邏輯運算元
包含且(&、AND);或(|、OR);非(^、NOT)