SAS入门(一)
SAS基礎
SAS語句
一個SAS語句是由SAS關鍵詞,SAS名字,特殊字符串,并以分號(;)結尾,它要求SAS系統執行一種操作或給SAS系統提供信息。如:
SAS關鍵詞:
許多SAS語句都是以關鍵詞開始并用它識別語句的類型,如DATA,INPUT,PROC和INFILE都被稱為關鍵詞。
SAS名字:
SAS語句中出現名字地方很多,如變量名、數據集名、格式名、過程名,及作為文件名和庫標記的特殊名字。SAS名字最多可由8個英文字母構成,第一個字符不能是數字,空格和特殊字符$、@和#也不能用于SAS的名字中。另外,SAS保留了一些特殊的變量名并賦于特定的意義,這些變量都是以下劃線開頭和結尾,如N_表示數據步已執行過的次數。
SAS表達式
表達式是由一系列算符和運算對象形成的一個指令,它被執行后產生一個目標值。運算對象是變量和常數。表達式分為簡單表達式(僅用一個算符)和復合表達式(使用多個算符),如:9;Age<1001;LOG(X);EXP(a);a*b/100等。SAS常數用來表示固定的值,它或者是一個數字,或者是固定的值,或者是字符串,或者是其它特殊記號。SAS有五種類型的常數:①數值常數:就是出現在SAS語句里的數字,完全像通常的數值一樣書寫,可以包括小數點和負號等;②字符常數:是由單引號括起來的1到200個字符組成的;③日期和時間數值常數;④十六進制數值常數;⑤十六進制字符常數。
SAS算符
- 比較算符:建立兩個量之間的一種關系,并要求SAS確定這種關系是成立不成立。如果它成立,輸出的運算結果是1;如果不成立,運算結果為0
- 算術算符:就是數學運算中常用的五種運算符號
- 邏輯算符:通常用來連接一系列比較式
運算次序:下面給出復雜表達式運算次序的準則。
①在括號里的表達式先計算。
②較高優先級的運算先被執行。
③對于相同優先級的算符,左邊的運算先做。
sas程序
由一系列SAS語句組成一個SAS程序。SAS程序中的語句可分為兩類步驟:DATA步和PROC步。這兩個步驟是所有SAS程序的模塊。通常用DATA步產生SAS數據集,而用PROC步對SAS數據集內的數據進行分析處理并輸出結果。PROC步要求SAS從過程中調出一個過程并執行這個過程,通常用SAS數據集作為輸入。
DATA步入門
SAS的數據步以DATA語句開始,用于創建和處理數據集。DATA語句以關鍵字“data”開始,格式如下:
data 數據集名;
例如:data a.case;將創建在庫a中名為case的SAS數據集,語句執行后你可在與庫a對應的目錄下看到剛剛建立的數據集文件case。
DATA語句所指定的數據集,一般都是以“庫名.數據集名”的格式出現的,也可以單獨的“數據集名”出現,此時的數據集系統默認為是臨時庫中的數據集,退出系統后將會被刪除。
直接輸入方式:就是用SAS語句輸入數據來產生SAS數據集的過程,一般形式為:
從外部文件讀入數據集。數據若已經包含在某個外部文件(文本文件或數據文件)中,可用此方法輸入數據到數據集文件中。在以上介紹的data語句后,寫入以下語句:
infile ‘外部文件的所在位置及名稱’ 選項; input 變量名1變量名2 …變量名n; infile語句用于從外部文件讀入數據,必須出現在input語句之前。它的功能是指定一個包含原始數據的外部文件。從已建立的SAS數據集中產生新的數據集。 如果用戶從已經建立的SAS數據集中抽取部份變量或數據來形成新的SAS數據子集,可在DATA步中通過SET命令來完成。
文件操作語句
運行語句
控制語句
對一些確定的觀測跳過一些語句,或者改變被執行語句的次序,實現從程序的一部分轉移控制到另一部分
文件控制語句 語句的作用及意義
Do 建立一組語句,它能夠作為一個語句去執行
End 標記一個DO組或Select組結束
Select 有條件地執行幾個SAS語句中的一個
Go to 使得SAS跳到本程序步帶有標號的語句,并從這里繼續執行
If then/else 有條件地執行一個SAS語句
信息語句
給出關于數據集或正被創建的數據集的附加信息,不是執行語句,可以出現在DATA步的任何地方,并且有同樣的功能
文件信息語句 語句的作用及意義
Array 定義一組能夠用相同方法處理的變量
Informat 對存儲變量值規定輸入格式
Format 對輸出變量值規定格式
Length 規定用來存儲SAS變量的字節數
Label 把描述性標簽同變量聯系起來
Drop 指出從數據集或分析中被刪除的變量
Keep 指出在數據集或分析中被保留的變量
Rename 改變數據集中一些變量的名字
PROC過程步
PROC步總是由PROC語句開始,然后給出運行的SAS過程名字。例如,運行SORT過程,則使用語句“proc sort;”來開始這個PROC步。通常PROC步只需要包括一個PROC語句給出運行的過程名字和一個RUN語句
MEANS 計算基本統計量
CHART 制作次數分布表 次數分布圖
UNIVARIATE PLOT 正態分布檢驗
PRINT 數 據 輸 出
SORT 數 據 排 序
Tabulate 制作表格
ANOVA 方差分析
GLM 協方差分析
CORR 相關系數的計算
REG 直 線 回 歸
PRINCOMP 主 成 分 分 析
SAS數據集
SAS數據集是關系型結構,分為兩個部份:描述部份和數據部份
描述部份包含了一些關于數據屬性的信息即變量名稱、類型及次序等信息;數據部份的結構完全等同于我們一般所理解的數據表,SAS數據值被安排在一個矩陣式的表狀結構中,由字段和記錄所構成,字段就是統計學中研究的變量,而記錄就是每個研究對象的觀測。
SAS數據集又包含在SAS數據庫的文件集中。SAS數據集是最常用的一種SAS文件類型,SAS數據庫還可以包含其它類型的SAS文件
SAS中數據庫分為永久性和臨時性兩種。存在于永久庫中的數據集是永久存在的(只要你不去刪除它),臨時庫中的數據集則在你退出SAS后自動被刪除。
在Windows操作系統,SAS數據庫以路徑為基礎的組織方式。為了使用SAS數據庫,需要為每個SAS數據庫指定一個庫標記來識別。這一標記又稱庫邏輯名,是某個文件所在路徑的別名。臨時數據庫的庫標記為WORK,在SAS啟動后自動生成,結束SAS后,庫中的所有文件都被刪除
臨時SAS數據集的建立
當啟動SAS后,系統自動建立一個臨時數據存儲區,用來臨時存儲運行SAS時建立或調用的SAS數據集,臨時數據庫的庫標記為WORK,在SAS啟動后自動生成,結束SAS后,庫中的所有文件都被刪除。臨時數據庫的庫標記不需要標注,即SAS程序中數據集work.abc與abc的表示含義完全相同
永久型SAS數據集的建立和保存
SAS啟動后自動生成臨時數據庫的庫標記,因而不需要專門進行命名,但當退出系統后臨時數據庫中的數據集會被自動清除。為了能反復多次使用同一數據集,需建立永久型SAS數據集。實際上,建立永久型SAS數據集,就是將SAS數據集儲存在數據庫邏輯名對應的路徑目錄下。
數據集的導入
除了通過數據步創建數據集的方法,SAS還提供了一些其他的方式可以用來讀入其他格式的數據文件。SAS可以利用【FILE】菜單上的【Import Data】命令將其他格式的數據文件導入SAS系統,創建SAS自己的數據集。可以導入的數據文件格式有:dBase數據庫,EXCEL工作表,LOTUS的數據庫,純文本的數據文件等。
導入的操作完全是對話式的,界面友好,簡便實用。以下簡單敘述導入的步驟
數據集的導出
除了導入其它格式的數據文件,SAS系統也可以導出SAS數據集為其它格式的數據文件。SAS可以利用【FILE】菜單上的【Export Data】命令將SAS數據集導出SAS系統,轉換為其它格式的數據文件。同樣地,可以導出的數據文件格式有:dBase數據庫,EXCEL工作表,LOTUS的數據庫,純文本的數據文件等。
數據的導出和導入完全是相反的兩個過程,同樣地,導出數據的菜單操作也完全是對話式的,以下簡單敘述導出的步驟
數據集的排序
將SAS數據集中的觀測(記錄)按一個或多個變量的數值大小進行排序,把結果存放在新的SAS數據集里,或者代替原始數據集,以便其它SAS過程通過使用BY語句可以直接調用該數據集。在對數據集進行合并或更新之前,也必須進行排序。SORT過程能完成對數據集的排序。
數據集的連接
數據集的連接就是把幾個數據集縱向連接起來,生成逐個尾部追加的合并數據集,或按一個或多個變量排序的新數據集,此過程在DATA步中通過SET語句來完成。
Set語句從一個或幾個已存在的SAS數據集中讀取觀測值。每一次set語句被執行時,SAS系統讀一個觀測送到程序數據向量。如果沒有其它規定,set語句從輸入數據集中讀所有變量和所有觀測。
數據集的合并
數據的合并是將兩個或多個SAS數據集中的觀測橫向合并成一個新數據集的一個觀測。請注意數據集連接和合并的差別
SAS系統合并觀測的方式依賴于是否有BY語句伴隨著MERGE語句
總結
- 上一篇: java 如何执行dig 命令_如何直接
- 下一篇: 数独游戏,随机生成只有唯一解的数独表