系統(tǒng)和數(shù)據(jù)分析SAS數(shù)據(jù)集的編輯_第1頁(yè)
系統(tǒng)和數(shù)據(jù)分析SAS數(shù)據(jù)集的編輯_第2頁(yè)
系統(tǒng)和數(shù)據(jù)分析SAS數(shù)據(jù)集的編輯_第3頁(yè)
系統(tǒng)和數(shù)據(jù)分析SAS數(shù)據(jù)集的編輯_第4頁(yè)
系統(tǒng)和數(shù)據(jù)分析SAS數(shù)據(jù)集的編輯_第5頁(yè)
已閱讀5頁(yè),還剩6頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、第十一課 SAS數(shù)據(jù)集的編輯通常從外部數(shù)據(jù)源轉(zhuǎn)換得到SAS數(shù)據(jù)集后,并不是所有的數(shù)據(jù)集都滿足統(tǒng)計(jì)數(shù)據(jù)要求,可立即調(diào)用統(tǒng)計(jì)過(guò)程進(jìn)行統(tǒng)計(jì)分析。需要對(duì)數(shù)據(jù)集進(jìn)行滿足統(tǒng)計(jì)數(shù)據(jù)要求的編輯或生成新的數(shù)據(jù)集。一、 增加數(shù)據(jù)集一個(gè)新變量SAS系統(tǒng)可通過(guò)賦值語(yǔ)句把包含操作符的表達(dá)式賦值給數(shù)據(jù)集所要?jiǎng)?chuàng)建的新變量。SAS的表達(dá)式中還可以包含SAS函數(shù),如一些常用的SAS函數(shù)見(jiàn)下表:函數(shù)分類(lèi)常用函數(shù)功能數(shù)學(xué)運(yùn)算函數(shù)ABS( )取絕對(duì)值SQRT( )求平方根INT( )取整數(shù)部分EXP( )計(jì)數(shù)e的次冪LOG( )求e為底的自然對(duì)數(shù)SIN( )計(jì)算正弦LAGn( )求給定變量滯后為n的值統(tǒng)計(jì)計(jì)算函數(shù)MAX( )求最大值

2、MIN( )求最小值MEAN( )求平均值SUM( )求和DIFn( )求給定變量X的第n階差STD( )求標(biāo)準(zhǔn)差PROBNORM( )標(biāo)準(zhǔn)正態(tài)分布函數(shù)日期時(shí)間處理函數(shù)DATE( )/TODAY()取當(dāng)日的日期值DAY( )計(jì)算某月的那一日HOUR( )計(jì)算小時(shí)TIME( )取當(dāng)日的時(shí)間YEAR( )取年值字符函數(shù)INDEX( )搜尋字符串的位置LEFT( )字符串表達(dá)式左對(duì)齊SUBSTR( )抽取子字符串TRIM( )移走尾部空格LENGTH( )給出字符變量的長(zhǎng)度UPCASE( )轉(zhuǎn)換為大寫(xiě)財(cái)政金融函數(shù)COMPOUND( )計(jì)算復(fù)利IRR( )計(jì)算內(nèi)部贏利率NPV( )計(jì)算凈現(xiàn)值SAVIN

3、G( )計(jì)算定期儲(chǔ)蓄的本金和利息例如,有一個(gè)學(xué)生成績(jī)數(shù)據(jù)集中的數(shù)據(jù)來(lái)源寫(xiě)在CARDS語(yǔ)句后,但我們還需產(chǎn)生新的變量平均分和總分,數(shù)據(jù)步的程序如下:Data class2 ;Input id test1-test5 ;average=mean(test1,test2,test3,test4,test5);total=test1+test2+test3+test4+test5;Cards ; 980801 100 100 100 100 100 980802 90 100 90 100 90 980803 81 82 83 84 85Proc print data=class2 ;Run ;在OU

4、TPUT窗口中顯示的運(yùn)行結(jié)果見(jiàn)圖11.1所示。圖11.1 用賦值表達(dá)式創(chuàng)建數(shù)據(jù)集的新變量二、 選擇數(shù)據(jù)集的變量和觀測(cè)數(shù)據(jù)庫(kù)的三種基本操作是選擇、投影和連接,如果我們把數(shù)據(jù)庫(kù)看成是一張表格,選擇和投影操作相當(dāng)于從一張大的數(shù)據(jù)庫(kù)表格中挑選所需的行和列形成一張小的數(shù)據(jù)庫(kù)表格。連接操作相當(dāng)于把兩張或兩張以上的數(shù)據(jù)庫(kù)表格按某種規(guī)則合并成一張數(shù)據(jù)庫(kù)表格。原始數(shù)據(jù)庫(kù)表格可以是外部數(shù)據(jù)文件(用INFILE語(yǔ)句輸入),或在作業(yè)流中(用CARDS語(yǔ)句輸入),或來(lái)自其他SAS數(shù)據(jù)集(用SET語(yǔ)句輸入)。1. 選擇變量(即選擇列)使用DATA語(yǔ)句的DROP=和KEEP=選項(xiàng)可以控制從原始數(shù)據(jù)庫(kù)中讀出的變量是否被寫(xiě)入將

5、要?jiǎng)?chuàng)建的數(shù)據(jù)集。例如,假設(shè)我們要從CLASS2數(shù)據(jù)集中產(chǎn)生只包含ID、AVERAGE和TOTAL變量,而不包含TEST1、TEST2、TEST3、TEST4、TEST5變量的新數(shù)據(jù)集CLASS3。有兩種程序編法都能達(dá)到相同的目的,一是使用DATA語(yǔ)句的DROP=選項(xiàng),表示從原有變量中去掉DROP=中指明的變量;二是使用DATA語(yǔ)句的KEEP=選項(xiàng),表示從原有變量中只保留KEEP=中指明的變量。程序如下:程序一:Data class3 (drop=test1 test2 test3 test4 test5);Setclass2;Proc print data=class3 ;Run;程序二:Da

6、ta class3 (keep=id average total );Setclass2 ;Proc print data=class3 ;Run ;程序一和程序二的運(yùn)行結(jié)果相同。在OUTPUT窗口中顯示的運(yùn)行結(jié)果如圖11.2所示。圖11.2 對(duì)數(shù)據(jù)集用DROP或KEEP進(jìn)行變量選擇2. 選擇觀測(cè)(即選擇行)選擇滿足條件的記錄行來(lái)形成新的數(shù)據(jù)集,可使用DATA步的IF語(yǔ)句,IF語(yǔ)句的作用就像一個(gè)過(guò)濾網(wǎng),IF語(yǔ)句中的條件表達(dá)式就像過(guò)濾網(wǎng)的形狀,只允許符合條件表達(dá)式的記錄行通過(guò),如果條件表達(dá)式恒為真,意味著過(guò)濾網(wǎng)是空的,讓所有的記錄行通過(guò)。對(duì)于不符合條件的記錄行不作任何處理,直接回到數(shù)據(jù)步的頂部再

7、將下一條記錄來(lái)通過(guò)過(guò)濾網(wǎng)。如果在條件語(yǔ)句IF中使用了DELETE語(yǔ)句,則可以控制哪些記錄行不被寫(xiě)入將要?jiǎng)?chuàng)建的新數(shù)據(jù)集。在條件表達(dá)式中要使用到比較操作符和邏輯操作符,SAS系統(tǒng)的比較操作符如下表所示:操作符符號(hào)意義LT<小于(Less Than)GT>大于(Greater Than)EQ=等于(Equal)LE<=小于等于(Less Equal)GE>=大于等于(Greater Equal)NE=不等于(Not Equal)IN等于列舉中一個(gè)SAS系統(tǒng)的邏輯操作符如下表所示:操作符符號(hào)意義AND&與OR|或NOT非請(qǐng)注意在條件表達(dá)示中使用上面兩個(gè)表中的操作符或符號(hào)

8、是等價(jià)的,特別要注意的是在一個(gè)復(fù)雜的條件表達(dá)式中可能同時(shí)包含算數(shù)運(yùn)算符(+ - * / *)、比較操作符和邏輯操作符,此時(shí)運(yùn)算的優(yōu)先次序?yàn)槔ㄌ?hào)、算數(shù)運(yùn)算符、比較操作符和邏輯操作符。下面的三個(gè)DATA步程序是從同一個(gè)數(shù)據(jù)集CLASS2中,按不同的條件表達(dá)式選擇記錄行形成新的數(shù)據(jù)集CLASS4,結(jié)果相同。程序一:Data class4;Set class2 ;if total ge 450 ;Proc print data=class4 ;Run ;程序二:Data class4;Set class2 ;iftotal lt 450 then delete;Proc printdata=class

9、4 ;Run ;程序三:Data class4;Set class2 ;if average>=80 and 100 in (test1,test2,test3,test4,test5) ;Proc print data=class4 ;Run ;運(yùn)行結(jié)果如圖11.3 所示。圖11.3 用IF條件語(yǔ)句選擇數(shù)據(jù)集中的觀測(cè)第十二課 程序三中的IF語(yǔ)句條件表達(dá)式等價(jià)于IF average>=80 and (100=test1 or 100=test2 or 100=test3 or 100=test4 or 100=test5),由于AND的優(yōu)先級(jí)比OR的高,與條件表達(dá)式IF avera

10、ge>=80 and 100=test1 or 100=test2 or 100=test3 or 100=test4 or 100=test5是有區(qū)別的。拼接和合并數(shù)據(jù)集數(shù)據(jù)集的連接是把兩個(gè)或兩個(gè)以上的數(shù)據(jù)集的觀測(cè)連接成一個(gè)新的數(shù)據(jù)集。連接的方式有兩種:拼接和合并。在SAS數(shù)據(jù)步中用SET語(yǔ)句可以拼接數(shù)據(jù)集,而用MERGE語(yǔ)句可以合并數(shù)據(jù)集。例如,我們有兩個(gè)數(shù)據(jù)集A和B,要拼接和合并成新的數(shù)據(jù)集C,兩種不同方法的程序和結(jié)果見(jiàn)示意圖12.4 所示。圖12.4 數(shù)據(jù)集的兩種連接方式:拼接和合并一、 數(shù)據(jù)集的拼接數(shù)據(jù)集的拼接可分成三種主要的拼接情況:1. 相同變量的數(shù)據(jù)集拼接這是最簡(jiǎn)單的情況

11、,在這種情況下,新生成的數(shù)據(jù)集就含有這些相同的變量,觀測(cè)的數(shù)目是所有這些數(shù)據(jù)集的觀測(cè)總和。例如,數(shù)據(jù)集A和B都含有兩個(gè)相同的變量COMMOM和X,且都有三條觀測(cè),如圖12.5 所示。圖12.5 含有相同的變量COMMOM和X的兩個(gè)數(shù)據(jù)集用下面程序生成新數(shù)據(jù)集C有兩個(gè)相同的變量COMMOM和X,6條觀測(cè)。DataA;Inputcommon x ;Cards ;9801 19802 298033DataB ;Inputcommon x ;Cards ;9801 498025 98036Data C ;SetA B ;Proc printdata=C;Run;拼接生成的新數(shù)據(jù)集C的結(jié)果如圖12.6所

12、示。圖12.6 相同變量的數(shù)據(jù)集拼接結(jié)果2. 不相同變量的數(shù)據(jù)集拼接如果兩個(gè)數(shù)據(jù)集A和B含有的變量不完全相同,如上例中數(shù)據(jù)集B含有的不是COMMON和X變量而是COMMON和Y變量,如圖12.7所示。用SET語(yǔ)句拼接A和B數(shù)據(jù)集后,新生成的數(shù)據(jù)集C就含有三個(gè)變量COMMON、X和Y,觀測(cè)的數(shù)目仍然是所有這些數(shù)據(jù)集的觀測(cè)總和,但原數(shù)據(jù)集中沒(méi)有的變量在拼接后新數(shù)據(jù)集中為缺失值。圖12.7 含有不相同的變量X和Y的兩個(gè)數(shù)據(jù)集生成新數(shù)據(jù)集C的程序如下:Data C;Set A B ;Proc printdata=C ;Run;拼接生成的新數(shù)據(jù)集C的結(jié)果如圖12.8所示。圖12.8 不相同變量的數(shù)據(jù)集拼

13、接結(jié)果3. 按關(guān)鍵字排序后拼接數(shù)據(jù)集如果要求新生成的數(shù)據(jù)集C按共同的關(guān)鍵字例如COMMON排序觀測(cè),那么預(yù)先要數(shù)據(jù)集A和B也已按COMMON關(guān)鍵字排序好,可通過(guò)排序過(guò)程PROC SORT 和BY指明關(guān)鍵字。生成新數(shù)據(jù)集C的程序如下:Proc sortdata= A;ByCommon ;Proc sortdata= B ;ByCommon ;DataC;Set A B ;ByCommon ;Proc print data=C ;Run;拼接生成的新數(shù)據(jù)集C的結(jié)果如圖12.9所示。圖12.9 按關(guān)鍵字排序后拼接的數(shù)據(jù)集結(jié)果無(wú)論哪一種拼接形式,用SET語(yǔ)句拼接生成的新數(shù)據(jù)集的觀測(cè)總數(shù)為原各輸入數(shù)據(jù)集

14、觀測(cè)數(shù)之和。二、 數(shù)據(jù)集的合并數(shù)據(jù)集的合并是通過(guò)使用MERGE語(yǔ)句把兩個(gè)或兩個(gè)以上數(shù)據(jù)集中的兩條觀測(cè)或兩條以上的觀測(cè)合并為新生數(shù)據(jù)集中的一條觀測(cè)。數(shù)據(jù)集的合并可分成兩種主要的合并情況:l 一對(duì)一合并(不帶BY語(yǔ)句)l 匹配合并(帶有BY語(yǔ)句)1. 一對(duì)一合并(不帶BY語(yǔ)句)把一個(gè)數(shù)據(jù)集中的第一條觀測(cè)同另外一個(gè)數(shù)據(jù)集中第一條觀測(cè)合并,第二條觀測(cè)同另外一個(gè)數(shù)據(jù)集中第二條觀測(cè)合并,以此類(lèi)推。新生成的數(shù)據(jù)集中的觀測(cè)總數(shù)為這些數(shù)據(jù)集中觀測(cè)個(gè)數(shù)的最大值。如果相對(duì)應(yīng)的某個(gè)數(shù)據(jù)集已沒(méi)有觀測(cè),則相應(yīng)的變量值為缺省值。如果在幾個(gè)數(shù)據(jù)集中有共同的變量,則在合并后新生成的數(shù)據(jù)集中只有一個(gè)變量,其值為列在MERGE語(yǔ)句

15、中最后一個(gè)含有該變量的數(shù)據(jù)集中的觀測(cè)值。例如,我們有兩個(gè)數(shù)據(jù)集A和B,如圖12.10所示。圖12.10 含有不相同的變量和相同變量不同值的兩個(gè)數(shù)據(jù)集生成新數(shù)據(jù)集C的程序如下:Data C ;MergeA B;Proc printdata=C ;Run;合并的新數(shù)據(jù)集C的結(jié)果如圖12.11所示。圖12.11 一對(duì)一合并(不帶BY語(yǔ)句)后的結(jié)果2. 匹配合并(帶有BY語(yǔ)句)如果想把兩個(gè)或兩個(gè)以上的數(shù)據(jù)集按照相同的關(guān)鍵字值合并,則在MERGE語(yǔ)句后面要用BY跟關(guān)鍵字語(yǔ)句。且每一個(gè)數(shù)據(jù)集必須預(yù)先按關(guān)鍵字排序好。如果兩個(gè)數(shù)據(jù)集中觀測(cè)的關(guān)鍵字值不匹配,輸出所有這些觀測(cè),相應(yīng)的新增變量的值為缺省值。如果兩個(gè)數(shù)據(jù)集中觀測(cè)的關(guān)鍵字值是多對(duì)多匹配,要注意新生成的數(shù)據(jù)集中相同關(guān)鍵字值的觀測(cè)數(shù)為各數(shù)據(jù)集中這個(gè)關(guān)鍵字值的觀測(cè)數(shù)的最大值,相同關(guān)鍵字值的觀測(cè)按順序一對(duì)一合并,無(wú)論哪一個(gè)數(shù)據(jù)集中這個(gè)相同關(guān)鍵字值的觀測(cè)沒(méi)有了,都取這個(gè)相同關(guān)鍵字值的最后一條觀測(cè)繼續(xù)合并。例如,我們有一個(gè)訂單數(shù)據(jù)集ORDERS和一個(gè)產(chǎn)品數(shù)據(jù)集PRODUCTS,如圖

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論