資源描述:
《SAS系統(tǒng)和數(shù)據(jù)分析SAS數(shù)據(jù)集.doc》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在應(yīng)用文檔-天天文庫。
1、第三課SAS數(shù)據(jù)集一、SAS數(shù)據(jù)集的結(jié)構(gòu)SAS數(shù)據(jù)集是關(guān)系型的,它通常分為兩部分:l描述部分——包含了一些關(guān)于數(shù)據(jù)屬性的信息l數(shù)據(jù)部分——包括數(shù)據(jù)值SAS的數(shù)據(jù)值被安排在一個(gè)矩陣式的表狀結(jié)構(gòu)中,如圖3-1所示。l表的列稱之為變量(Variable),變量類似于其他文件類型的域或字段(Field)l表的行稱之為觀察(Observation),觀察相當(dāng)于記錄(Record)變量1變量2變量3變量4NameTest1Test2Test3觀察1Xiaoer908688觀察2Zhangsan1009889觀察3Lisi797670觀察4W
2、angwu687164觀察5Zhaoliu1008999圖3.1一個(gè)SAS數(shù)據(jù)文件二、SAS數(shù)據(jù)集形式SAS系統(tǒng)中共有兩種類型的數(shù)據(jù)集:lSAS數(shù)據(jù)文件(SASdatafiles)lSAS數(shù)據(jù)視窗(SASdataviews)SAS數(shù)據(jù)文件不僅包括描述部分,而且包括數(shù)據(jù)部分。SAS數(shù)據(jù)視窗只有描述部分,沒有數(shù)據(jù)部分,只包含了與其他數(shù)據(jù)文件或者其他軟件數(shù)據(jù)的映射關(guān)系,能使SAS的所有過程可訪問到,實(shí)際上并不包含SAS數(shù)據(jù)視窗內(nèi)的數(shù)據(jù)值。自始至終,在SAS語言中,“SAS數(shù)據(jù)集”與這兩種形式中之一有關(guān)。在下面的例子中,PRINT過程用
3、相同方法處理數(shù)據(jù)集aaa.abc,而忽略它的形式:PROCPRINTDATA=aaa.abc三、SAS數(shù)據(jù)集的名字SAS數(shù)據(jù)集名字包括三個(gè)部分,格式如下:Libref.data-set-name.membertypelLibref(庫標(biāo)記)──這是SAS數(shù)據(jù)庫的邏輯名字ldata-set-name(數(shù)據(jù)集名字)──這是SAS數(shù)據(jù)集的名字lmembertype(成員類型)──SAS數(shù)據(jù)集名字的這一部分用戶使用時(shí)不必給出。SAS數(shù)據(jù)文件的成員類型是DATA;SAS數(shù)據(jù)視窗的成員類型是VIEW例如,上面例子中的aaa.abc這個(gè)SAS
4、數(shù)據(jù)集名字,aaa是庫標(biāo)記,abc是數(shù)據(jù)集名字,成員類型沒有寫出,應(yīng)該是DATA或VIEW中的一個(gè)。一、永久的和臨時(shí)的SAS數(shù)據(jù)集SAS的存儲(chǔ)方式有兩種:l永久的SAS數(shù)據(jù)集l臨時(shí)的SAS數(shù)據(jù)集一個(gè)SAS數(shù)據(jù)集是臨時(shí)地或者是永久地存在,取決于該數(shù)據(jù)集所附屬的SAS數(shù)據(jù)庫是臨時(shí)的或永久的。一般用LIBNAME語句把主機(jī)系統(tǒng)下某個(gè)目錄與庫標(biāo)記聯(lián)系起來,并用這個(gè)庫標(biāo)記作為SAS數(shù)據(jù)集名字的第一部分(或稱第一級),這樣規(guī)定的SAS數(shù)據(jù)集是永久的;如果只有第二部分(或稱第二級)數(shù)據(jù)集的名字或庫標(biāo)記為WORK時(shí),這樣規(guī)定的SAS數(shù)據(jù)集是臨時(shí)
5、的。永久庫中的所有文件將被保留,但庫標(biāo)記仍然是臨時(shí)的。每次SAS啟動(dòng)時(shí)都自動(dòng)指定兩個(gè)庫標(biāo)記:SASUSER和WORK。分別聯(lián)系目錄“C:SASSASUSER”和“C:SASSASWORK#TDxxxxx”。如圖3.2所示。圖3.2SAS系統(tǒng)的庫標(biāo)記與對應(yīng)的目錄1.對永久SAS數(shù)據(jù)集的命名假定你想創(chuàng)建一個(gè)數(shù)據(jù)集名為Class的永久數(shù)據(jù)集,這個(gè)數(shù)據(jù)集中的觀測值和變量定義為圖3.1所示。首先,你要確定Class的數(shù)據(jù)集在哪里存儲(chǔ),然后使用LIBNAME語句來定義庫標(biāo)記;若選擇Study作為庫標(biāo)記,那么在DATA語句中你應(yīng)該這
6、樣命名SAS數(shù)據(jù):圖3.3創(chuàng)建永久性數(shù)據(jù)集STUDY.CLASSlibnamestudy'd:sasmydir';datastudy.class;當(dāng)這個(gè)DATA步執(zhí)行時(shí),名為class的SAS數(shù)據(jù)集被存儲(chǔ)在用庫標(biāo)記Study聯(lián)系的目錄里。圖3-3所示的是創(chuàng)建永久性數(shù)據(jù)集STUDY.CLASS的程序,注意在第一條LIBNAME語句執(zhí)行后,將在LIBNAME窗口出現(xiàn)第五個(gè)新的庫標(biāo)記“STUDY”和用戶自定義聯(lián)系目錄“d:sasmydir”。在這次SAS會(huì)話后面的DATA步或PROC步使用這個(gè)數(shù)據(jù)集時(shí),必須規(guī)定兩級名字。例如:
7、procprintdata=study.class;如果你想在另一次SAS會(huì)話里讀這個(gè)class數(shù)據(jù)集,你必需再定義一個(gè)庫標(biāo)記。1.對臨時(shí)SAS數(shù)據(jù)集的命名為了創(chuàng)建或讀一個(gè)臨時(shí)SAS數(shù)據(jù)集,通常你只要規(guī)定單級名字,即這個(gè)數(shù)據(jù)集名字。SAS系統(tǒng)自動(dòng)地使用WORK作為庫標(biāo)記。這對于開發(fā)和檢查新程序非常有用,但每次結(jié)束SAS后WORK庫標(biāo)記中的所有文件將被刪除。例如,下面語句:dataclass;產(chǎn)生SAS數(shù)據(jù)集的全名為work.class(或work.class.data,該數(shù)據(jù)集的成員類型data是SAS系統(tǒng)自動(dòng)產(chǎn)生的,不必寫出)
8、。如果你執(zhí)行DATA步但不想創(chuàng)建SAS數(shù)據(jù)集,可在DATA語句里規(guī)定關(guān)鍵字_NULL_作為這個(gè)數(shù)據(jù)集的名字。如果你在DATA語句中沒有規(guī)定數(shù)據(jù)集的名字或保留名字_NULL_,那么SAS系統(tǒng)自動(dòng)地創(chuàng)建一些SAS數(shù)據(jù)集,并命名為DATA1、DATA2、…這些數(shù)據(jù)集被