--SAS系統(tǒng)和數(shù)據(jù)分析PROCTRANSPOSE轉(zhuǎn)置數(shù)據(jù)集_第1頁
--SAS系統(tǒng)和數(shù)據(jù)分析PROCTRANSPOSE轉(zhuǎn)置數(shù)據(jù)集_第2頁
--SAS系統(tǒng)和數(shù)據(jù)分析PROCTRANSPOSE轉(zhuǎn)置數(shù)據(jù)集_第3頁
已閱讀5頁,還剩3頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、第十三課 PROC TRANSPOSE 轉(zhuǎn)置數(shù)據(jù)一、轉(zhuǎn)置數(shù)據(jù)集的概念在對數(shù)據(jù)庫的操作中,有時需要把數(shù)據(jù)庫的行和列進行交換,也可稱轉(zhuǎn)置。SAS系統(tǒng)中TRANSPOSE過程能完成對 SAS數(shù)據(jù)集的轉(zhuǎn)置,即把觀測(行)變?yōu)樽兞浚校?,變量變?yōu)?觀測。該過程從讀入的一個數(shù)據(jù)集中創(chuàng)建一個新的數(shù)據(jù)集。新數(shù)據(jù)集中包含三類變量:一是由輸入數(shù)據(jù)集中的觀測轉(zhuǎn)置后創(chuàng)建的新變量,又稱轉(zhuǎn)置變量,如_NAME_、COL1、COL2、COL3 二是從輸入數(shù)據(jù)集中拷貝過來的變量,使用COPY語句定義這個變量,新數(shù)據(jù)集中COPY過來的變量與輸入數(shù)據(jù)集中的變量具有相同的名字和值三是為了識別新數(shù)據(jù)集中每條觀測的來源用ID語句定義

2、的變量值作為新數(shù)據(jù)集創(chuàng)建的新變量二、使用PROC TRANSPOSE 過程轉(zhuǎn)置數(shù)據(jù)集1. 用于TRANSPOSE過程的常用語句Proc Tran spose<DATA=輸入數(shù)據(jù)集OUT=轉(zhuǎn)置數(shù)據(jù)集 ><選項列表> ;Var變量列表;Id變量;Copy變量列表;Run ;2. 轉(zhuǎn)置CLASS數(shù)據(jù)集例如,在 CLASS數(shù)據(jù)集中有變量 NAME、TEST1、TEST2和TEST3,是按每個學(xué)生各 課程成績作為一條觀測來組織的,現(xiàn)在我們要創(chuàng)建一個按每門課程各個學(xué)生的考試成績作為 一條觀測的新數(shù)據(jù)集 NEWCLASS。程序如下:Proc Transpose Data=CLASS

3、Out=NEWCLASS ;VarTEST1 TEST2TEST3 ;Run ;轉(zhuǎn)置生成的新數(shù)據(jù)集NEWCLASS的結(jié)果如圖13.1所示。上海財經(jīng)大學(xué)經(jīng)濟信息管理系IS/SHUFECreated by zxdengJnl2d號 3苗- HTTFUT - CUnti 門詞)gl Filt Elit Vifiw Glob ala Options Window KelpJ XE'H aI 口1劇d團吋糾電I聞OBS12_NAMETE311 TEST2TESTS3 L o- c-CDL4 CQL517'2T Thuirsda,圖13.1 由CLASS轉(zhuǎn)置生成的新數(shù)據(jù)集 NEWCLASS

4、3. 設(shè)定新數(shù)據(jù)集中的轉(zhuǎn)置變量名新數(shù)據(jù)集中的轉(zhuǎn)置變量名是可以由用戶自己設(shè)定的。通過PROC TRANSPOSE 語句的選項NAME=COURSE ,修改了省缺的新變量名 _NAME_ 為 COURSE還可以通過選項 PREFIX=NO,修改了省缺的新變量名COL1、COL2、COL3、COL4、COL5 為 NO1、NO2、NO3、NO4、NO5如果新變量名 COL1、COL2、COL3、COL4、COL5想用輸入數(shù)據(jù)集 CLASS中NAME變量中的對應(yīng)值來替代,使用ID命令定義NAME即可。這樣命名新變量的優(yōu)點是通過新變量名就可以很容易地識別原數(shù)據(jù)集中的觀察行修改程序如下:Proc Tran

5、spose Data=CLASS Out=NEWCLASS Name=COURSE ;Var TEST1 TEST2 TEST3 ;Id Name ;Run ;轉(zhuǎn)置生成的新數(shù)據(jù)集 NEWCLASS的結(jié)果如圖13.2所示。上海財經(jīng)大學(xué)經(jīng)濟信息管理系IS/SHUFECreated by zxdeng號 SAS - 卬VIFUT - Okititled)El Fl16 Edit Vl GlcbkLs Options 壯顯艸 HtlpX|ZJThe SAS SystemCOURSEXIADERZHANGSNUhNGNU17:27 Thur*專day , AuZH肌LIU0 9 90 8 98 146

6、7 69 6 07 770 8 91O 6 003 6 812 3圖13.2使用ID語句轉(zhuǎn)置生成的新數(shù)據(jù)集 NEWCLASSaI qLLs!副吋器I射團訓(xùn)廳第十四課 另外,還可以在 PROCTRANSPOSE過程中使用COPY語句,在 語句中指定輸入數(shù)據(jù)集的某一個(或某幾 個)變量,將直接把輸入數(shù)據(jù)集中指定變 量那一列拷貝到新數(shù)據(jù)集也成為一列。當(dāng) 然,這樣操作常會產(chǎn)生輸出數(shù)據(jù)集的行和 列數(shù)不匹配,用缺失值填滿。使用FSVIEW過程編輯數(shù)據(jù)集我們前面主要用SAS的程序方法來編輯 SAS數(shù)據(jù)集。實際上,很多用戶習(xí)慣使用 SAS/FSP 軟件的FSVIEW過程來編輯SAS數(shù)據(jù)集,這是一種交互式菜單編

7、輯方式,非常方便。例如,在PROGRAM EDITOR 窗口中輸入的程序如下:Proc fsview data=study.survey ;Run ;程序提交后,進入FSVIEW 窗口。用戶仍然可以在命令框中鍵入命令來編輯,如鍵入DROP命令去掉不需要顯示的變量 (投影操作)、WHERE命令獲得子集(選擇操作)及WHERE ALSO命令獲得子集的子集。FSVIEW過程與FSEDIT過程相比,F(xiàn)SVIEW過程更方便,是用 上海財經(jīng)大學(xué)經(jīng)濟信息管理系IS/SHUFECreated by zxdeng戶最常用的輸入和編輯 SAS數(shù)據(jù)集的過程。因為FSVIEW在每一屏顯示盡可能多的觀測,是一種屏編輯;

8、而 FSEDIT在每一屏只顯示一條觀測,是一種行編輯。我們在這里以編輯數(shù)據(jù) 集STUDY.SURVEY .DATA為例,簡單介紹幾種最常用的編輯操作。選擇 Edit/Update/Record命令編輯記錄如果選擇了 Edit/Update/Memer命令,則按數(shù)據(jù)集的一個個數(shù)據(jù)項進行編輯,每按一個 Enter編輯光標跳到下一個數(shù)據(jù)項。如果選擇了Edit/Update/Record命令,則按數(shù)據(jù)集的一條條記錄進行編輯,每按一個Enter編輯光標跳到下一條記錄。如圖14.3所示是FSVIEW屏編輯窗口。圖14.3 FSVIEW 屏編輯窗口1. 修改指定記錄進入按記錄編輯狀態(tài)后,只要單擊一下所要編輯

9、記錄的行中任意位置,就會出現(xiàn)高反差 的編輯條,移動左右光標到行中某處即可修改。要注意的是,窗口中顯示的是數(shù)據(jù)集的輸出 格式,我們在輸入或修改時,一定要按輸入格式進行輸入,否則可能發(fā)生錯誤。上海財經(jīng)大學(xué)經(jīng)濟信息管理系IS/SHUFECreated by zxdeng2. 刪除指定記錄按上下光標或 Page Up/Page Down鍵可上下移動編輯光標,移到指定行后再按Enter鍵,也會出現(xiàn)高反差的編輯條,只有在出現(xiàn)編輯條時再按工具欄上的Delete按鈕,才能刪除此記錄行。另外一種方法是,選擇Edit/Delete命令后,再輸入需要刪除記錄的OBS編號。需要注意,OBS編號是記錄輸入的順序號,而不

10、是當(dāng)前記錄的邏輯順序編號。記錄輸入的順序號可 能不連續(xù),原因是斷缺號碼的輸入記錄已經(jīng)被刪除了。3. 新增一條記錄如果需要新增記錄,選擇Edit/Autoadd命令,將新增一條空白記錄,然后在空白記錄上輸入,按Enter鍵將繼續(xù)新增空白記錄。Edit/Autoadd是一個開關(guān)命令,再次選擇此命令將關(guān)命令去掉變量的顯示掉新增記錄狀態(tài)。4. 選擇 View/Arrange variables/Drop如果要去掉不需要顯示的變量,例如AGE變量,選擇View/Arra nge variables/Drop命令后將出現(xiàn)如圖14.4所示的輸入框,空白框中輸入數(shù)據(jù)集變量名AGE,單擊OK即可。圖14.4 去

11、掉AGE變量選擇 View/Rename 命令更改變量 的名稱如果要更改變量的名稱,例如將NAME變量名更改為ID_NAME 。選擇View/Rename命令 后將出現(xiàn)見圖14.5所示輸入框,輸入被改的變量名 NAME和改為的變量名ID_NAME。單擊 OK改名任務(wù)完成。|Renihe兇Rename vaiiable |NAMEto IlDNAMEsCancel圖14.5 更改NAME 變量名為ID_NAME命令重現(xiàn)在在屏幕的窗口中顯BDATE出生年日三、選擇 View/Assign formats/Format新定義變量的輸出格式STUDY .SURVEY數(shù)據(jù)集在初始創(chuàng)建時, 我們只考慮了輸

12、入格式, 示的數(shù)據(jù)格式是一種系統(tǒng)默認的輸出格式,可能不符合用戶的要求,例如期變量,顯示的是 SAS系統(tǒng)內(nèi)部的日期存儲值,我們將它改成MMDDYY8.日期輸出格式。選擇View/Assign formats/Format命令后將出現(xiàn)如圖 14.6所示輸入框,在 Enter name of format 輸入框中輸入輸出格式MMDDYY8.,在Enter name of variable(s) to format輸入框中輸入需改變輸出格式的變量名 BDATE。單擊0K修改完成。圖14.6 更改BDATE變量的輸出格式四、選擇Locals/Define formula命令新 增顯示變量假設(shè)我們要對STUDY.SURVEY數(shù)據(jù)集新增一個TAX顯示變量,它的值可由本條觀測的 其他字段變量中的值經(jīng)過一定的運算求得,例如TAX=INCOME*10% 。選擇 Locals/Defi neformula命令后就會出現(xiàn)如圖 14.7所示的定義新變量的窗口,在Name中輸入新變量 TAX回車,在Enter the formula below的下面立即出現(xiàn) TAX=,在Type中有數(shù)字 NUMERIC 和字符 CHARACTER兩個選項,我們選擇數(shù)字型變量,定義數(shù)據(jù)輸出格式為 9.2,最后輸入變量TAX的賦值公式為INCOME*O.1。單擊OK完成。今后新增一條記錄輸入時,只要在INCOME變

溫馨提示

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

評論

0/150

提交評論