2014年2月22日 星期六

準備Base programming 筆記_Day 1

雖然已有3、4 年的SAS經驗,但不希望浪費 Base programming for SAS 那近 六張小朋友的報名費,為求謹慎,我依照  SAS Certification Prep Guide: Base Programming for SAS 9, Third Edition 這本書,開始按步就班進行準備,但又因為不想在書裡留下任何記號,就決定把筆記留在blogger裡,以供後續參考。

期許自己每晚能定時 K書,別估負那貴松松的書籍費和報名費 ( 搭廉航去日本爽爽玩的來回機票就這般沒了~~~ T_T 越想越心痛 )。

====================================================================

程式以 DATA 或 Proc 為一組,執行上遇到DATA或Proc時,會把已讀入的指令執行完畢,再去讀新的一組DATA 或 Proc指令。

Two-level 資料檔名稱 ( Libname.filename )
  • 開頭,letter (A~Z)大小寫不拘,或者 underscore (_)
  • 之後,任意 letter underscore 或數字。
  • 長度,
    • Libname :最多8碼
    • Filename:長度最多32碼。
Missing Value
數值變項為 (.),文字變項為單純的空白()  。

變項的 Format ,用於 Display
作用規則 SAS data value --> sas format --> Formatted sas data value
例如:把 數值的5678,用DOLLAR8.2 format,就變成以 $5,678.00 呈現。
8.2 就是原自 w.d 的寫法,w是總長度,d是含有小數幾位。

變項的 Informat ,用於 Read data
作用規則 Data value --> sas informat --> sas data value
例如, 原始外部資料是 $5,678.00 ,指定以Comma 10. 去讀,電腦最終以5678.00 轉入SAS,去除 $ 和 ,。

有關 format 和 informat,一個顯示資料,一個讀取資料,後續應該會有更細的介紹。

一個(;)表示一個statement,下例有5個(;),是5個statement。(@_@ 還真的沒有仔細算過)
proc print data=new.prodsale
label noprint;
var x y z ; where state='NC';
label state='Name of State'; run;


附註:除上述所列,還有一些很基本的軟體環境,一般user 都已知道,速速往後讀吧。