sas是現今非常流行的資料分析和資料探勘軟體,想從事資料分析行業,掌握sas很有必要。雖然sas本身提供了豐富的人機互動介面,通過手動呼叫各個menu能方便地完成資料統計分析的任務,但是,通過**來呼叫各個功能模組無疑能為工作帶來巨大的靈活性,並顯著提高效率。
本文主要是根據網上找到的乙個電子文件《sas語句簡介》(可能是某本書的其中一章)以及朱世武老師的《sas程式設計技術教程》整理而成。
sas 程式通常分為資料步和過程步,一段sas 程式根據目的和需要可以有0到多個資料步(data)和0到多個過程步(proc),還可以有系統選項語句、ods語句等全域性語句。
資料步功能有:
(1)從外部檔案中讀取資料;
(2)將資料寫入到外部檔案中;
(3)讀取sas資料檔案和檢視;
(4)建立sas資料檔案和檢視。
sas程式在書寫的時候要遵循如下幾點規則:
(1)每條sas語句以分號(;)結尾;
(2)sas語句可以從任何一行、任何一列開始,一行上可以寫多條sas語句;
(3)一條sas語句可以寫在多行上,但不能把乙個語法單位分開寫在不同的行上;
(4)一般情況下,一條語句中不同的語法單位要用空格或換行符分隔,但是一些字元的前方或後方,可以不用空格分隔,sas可以自動分析語句結構、識別語法單位;
(5)sas語句書寫不區分字母的大小寫,但在一些特殊場合除外。
下面的一幅很好的解釋了sas的注釋語句。
sas要遵循如下的命名規則:
(1)sas 名以字母或下劃線開頭,後續字元可以是字母、數字或下劃線(同c語言);
(2)sas 名依據其使用的場合有一定長度限制,有的部位的sas 名至多有32 個位元組長度,有的部位的sas 名至多有8 個位元組長度;
(3)sas 名不區分大、小寫,例如bmi、bmi、bmi 在sas 名中都是乙個詞;
(4)sas 名中不能出現空格,並且sas 名中除了字母、數字、下劃線外,不能含有其他特殊字元,如#、$、@、%等特殊字元不能出現在sas 名中;
(5)sas 保留了一些自動變數名及變數列表、sas 資料集名和邏輯庫引用名;
程式語言一般都離不開變數。變數相當於乙個容器,用來儲存一定結構的資料。sas變數除了具備常規程式語言所具備的許多共性外,也有一些自己的特點,下面主要講述它特別的地方:
(1)sas中只有兩種資料型別--數值型和字元型。變數後加美元號表示該變數時字元型,美元號可以緊跟變數名後面,也可以空格。
(2)變數預設長度為8個位元組,通常乙個普通英文本元佔乙個位元組,乙個漢字佔兩個位元組;使用者可以用length,attrib語句修改變數的長度。如果變數第一次出現在表示式左邊,則變數長度與表示式右邊的結果值的長度一致。
(3)輸出格式:字元型變數預設輸出格式是「best16.」,數值型變數預設的輸出格式是「$w.」,可以用format,attrib語句或者format過程定義或修改變數的輸出格式。
(4)變數次序:指資料步建立或定義變數的次序。
(5)索引型別:決定這個變數是否是資料集索引的一部分的屬性。這個屬性可以用contents 過程的『out=』選項進行定義和修改。
8.sas檔案系統
(1)邏輯庫
邏輯庫名是sas名,長度不能超過8b。建立sas邏輯庫的語句:
libname libref 『sas-data-library』
語法說明:
libref:邏輯庫名
engine:引擎名稱(缺失時是預設引擎)
邏輯庫又分為臨時庫和永久庫:臨時邏輯庫指的是內容只在啟動sas時存在,一旦退出sas時內容完全被刪除。系統預設臨時邏輯庫是work,引用臨時庫work中的檔案時,可以不加庫名。永久庫當然在sas關閉後仍舊保留。
(2)資料集
sas資料集分為兩類:sas資料檔案和sas資料檢視。sas資料檔案同時描述資訊和儲存資料值,sas檢視並不實際儲存資料,它相當於乙個查詢語句。
(3)資料集選項
資料集選項用在sas資料集名稱後的括號中,多個選項之間用空格隔開。括號中的資料集選項的作用:
重新命名變數;
選擇需要的觀測;
輸出資料集中保留或刪除的變數;
資料集加密。
語法格式:
data-set-name(data-set-options)
(option-1=value-1)
例子:
data scores(keep=team game1 game2 game3);
/*scores中保留team, game1, game2, game3四個變數*/
proc print data= new(drop=year); /*去掉變數year*/
set old(rename=(date=start_date)); /*將date改名*/
SAS自學筆記1 SAS基本語法
像任何其他程式語言中,sas語言都有其自己的語法規則來建立sas程式。任何sas方案的三個組成部分 宣告,變數和和資料集遵循以下語法規則。sas中的變數表示sas資料集中的一列。變數名遵循以下規則。valid variable names revenue year maxval length inv...
SAS中的if過濾語句
在sas中,if語句和where語句都有過濾作用,請看如下兩端 其效果是相同的 data a set sashelp.class if eq 男 run data a set sashelp.class where eq 男 run if 過濾語句的基本語法為 if 條件 其完整形式應該是 if 條...
SAS中的排序語句proc sort
常用寫法 適用情況 每日一問 proc sort data database out newdatabase nodupkey by all run 如果可以覆蓋原資料集,可以直接省略out步 nodupkey需要和後面的by語句一起使用,並且給by後面的變數排序後,僅根據by變數剔重 如果原資料集...