實(shí)驗(yàn)二 SAS編程基礎(chǔ)_第1頁(yè)
實(shí)驗(yàn)二 SAS編程基礎(chǔ)_第2頁(yè)
實(shí)驗(yàn)二 SAS編程基礎(chǔ)_第3頁(yè)
實(shí)驗(yàn)二 SAS編程基礎(chǔ)_第4頁(yè)
實(shí)驗(yàn)二 SAS編程基礎(chǔ)_第5頁(yè)
已閱讀5頁(yè),還剩1頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、實(shí)驗(yàn)二SAS編程基礎(chǔ)SAS語(yǔ)言和其它計(jì)算機(jī)語(yǔ)言一樣,也有其專有的詞匯(即關(guān)鍵字)和語(yǔ)法。關(guān)鍵字、 名字、特殊字符和運(yùn)算符等按照語(yǔ)法規(guī)則排列組成SAS語(yǔ)句,一個(gè)SAS程序由若干數(shù)據(jù)步、 過程步組合而成,而每一個(gè)程序步通常由若干語(yǔ)句構(gòu)成。SAS程序是在Editor窗口中進(jìn)行 編輯,提交運(yùn)行后可以在Log窗口中顯示有關(guān)信息和提示,在Output窗口顯示運(yùn)行的結(jié)果。2.1實(shí)驗(yàn)?zāi)康耐ㄟ^實(shí)驗(yàn)了解SAS編程的基本概念,掌握SAS編程的基本方法,掌握SAS數(shù)據(jù)步對(duì)數(shù) 據(jù)集的管理和對(duì)數(shù)據(jù)的預(yù)處理。2.2實(shí)驗(yàn)內(nèi)容一、建立邏輯庫(kù)與數(shù)據(jù)集,包括邏輯庫(kù)的建立、直接輸入數(shù)據(jù)建立數(shù)據(jù)集與讀取外部數(shù) 據(jù)文件建立數(shù)據(jù)集。二、數(shù)

2、據(jù)文件的編輯與整理,包括數(shù)據(jù)集的橫向合并與縱向合并、數(shù)據(jù)集內(nèi)容的復(fù)制、 變量和觀測(cè)的增減與篩選、數(shù)據(jù)集的拆分和數(shù)據(jù)的排序等。2.3實(shí)驗(yàn)指導(dǎo)一、建立邏輯庫(kù)與數(shù)據(jù)集建立邏輯庫(kù)【實(shí)驗(yàn)2-1】編程建立邏輯庫(kù)。首先在D盤創(chuàng)建一個(gè)文件夾,如D:SAS_SHIYANSASDATA建立邏輯庫(kù)mylib,編輯并運(yùn)行下面程序語(yǔ)句即可。libname mylib D:sas_shiyansasdata”;直接輸入數(shù)據(jù)建立數(shù)據(jù)集【實(shí)驗(yàn)2-2】將表2-1(sy2_2.xls)中的數(shù)據(jù)直接輸入建立數(shù)據(jù)集sy2_2,并將其存入邏輯 庫(kù)mylib中。表2-1職工工資編號(hào)姓名性別工作日期職稱部門基本工資工齡工資獎(jiǎng)金扣款實(shí)發(fā)工資

3、3003王以平男1992-8-1助工生產(chǎn)620300500014203004林紅女1993-8-1助工供銷62028050020012003005呂興良男1982-1-30工程師技術(shù)110050050010020003006司馬宇男1971-2-17工人生產(chǎn)520720500017403007張學(xué)武男1967-10-9工人保衛(wèi)52080050020016203008馮玉霞女1987-8-1工程師生產(chǎn)110040050025017503009趙大強(qiáng)男1968-5-10工人財(cái)務(wù)520780500018003010王萍女1987-8-1工程師技術(shù)11004005001001900代碼如下:data

4、mylib.sy2_2;input bh $ xm $ xb $ gzrq $ zc $ bm $ jbgz glgz jj kk sfgz;informat gzrq yymmdd10.;format gzrq ddmmyy8.;label bh=編號(hào)xm=姓名xb=性別gzrq=工作日期zc=職稱bm=部門jbgz=基本工資 cards;3003 王以平glgz=工齡工資男 1992-8-1jj=獎(jiǎng)金助工kk=扣款生產(chǎn)sfgz=實(shí)發(fā)工資;620 300 500014203004林紅女1993-8-1助工供銷62028050020012003005呂興良男1982-1-30工程師技術(shù)1100

5、50050010020003006司馬宇男1971-2-17工人生產(chǎn)520720500017403007張學(xué)武男1967-10-9工人保衛(wèi)52080050020016203008馮玉霞女1987-8-1工程師生產(chǎn)110040050025017503009趙大強(qiáng)男1968-5-10工人財(cái)務(wù)520780500018003010王萍女1987-8-1工程師技術(shù)11004005001001900;RUN;3.讀取外部數(shù)據(jù)文件建立數(shù)據(jù)集【實(shí)驗(yàn)2-3】讀取文本文件sy2_3.txt (圖2-2)建立數(shù)據(jù)集work.sy2_3。假設(shè)文本文件 存放在文件夾D:SAS_SHIYAN原始數(shù)據(jù)”中。男1992-8-

6、1助工 生產(chǎn)G2030Q50001420女1993-8-1助工供銷62028050020G12Q0男1982-1-30工程師技術(shù)11005Q05001002QQ0男1971-2-17工人生產(chǎn)52072Q50001740男1967-10-9工人保衛(wèi)52080050020G1620女1987-8-1工程師生產(chǎn)11004005002501750男1968-5-10工人財(cái)務(wù)52078050001800女1987-8-1工程師技術(shù)11004005001001900B sy2_3. txt -記事本匚I口|區(qū)|文件(E)編輯(E)格式(Q)查看也)幫助(H)平良宇武霞騷 以紅興馬學(xué)玉大薦 王林呂司張馮趙王

7、 34567890 O0000001 Q 33333333圖2-2文本文件sy2_3.txt代碼如下:data sy2_3;infile d:sas_shiyan 原始數(shù)據(jù) sy2_3.txt;input bh $ xm $ xb $ gzrq zc $ bm $ jbgz glgz jj kk sfgz;informat gzrq yymmdd10.;format gzrq date9.;run;注意:文本文件中數(shù)據(jù)之間用空格隔開,不能使用Tab鍵?!緦?shí)驗(yàn)2-4】讀取Excel文件sy2_2.xls (如表2-1所示)建立數(shù)據(jù)集work.sy2_4。已知 Excel文件sy2_2.xls存放

8、在文件夾d:sas_shiyan始數(shù)據(jù)”中。首先將表2-1修改為如圖2-4所示的Excel表sy2_4.xls,并存放在d:sas_shiyan原始數(shù)據(jù) 中。圖 2-4 Excel 表 sy2_4.xls建立數(shù)據(jù)集work.sy2_4代碼如下:proc import out=sy2_4datafile = d:sas_shiyan原始數(shù)據(jù)sy2_4.xls”dbms = excel2000 replace;getnames = no;/*如果表中第一行為變量名,則刪去此行*/run;注意:sy2_4.xls中第3至5列中的多加的“0”是為了保證導(dǎo)入后字符型變量的長(zhǎng)度正確。二、數(shù)據(jù)文件的編輯與整

9、理數(shù)據(jù)集的復(fù)制與修改【實(shí)驗(yàn)2-5】將mylib.sy2_2中的“工作日期”去掉,基本工資小于600的改為600,生 成新的數(shù)據(jù)集work.sy2_5。代碼如下:data sy2_5;set mylib.sy2_2;drop gzrq;if jbgz 600 then jbgz = 600;run;增加新變量【實(shí)驗(yàn)2-6】在mylib.sy2_2中增加變量yfgz (應(yīng)發(fā)工資=基本工資+工齡工資+獎(jiǎng)金)、 生成新的數(shù)據(jù)集work.sy2_6。代碼如下:data sy2_6;set mylib.sy2_2;yfgz = jbgz + glgz + jj;run;數(shù)據(jù)集的縱向拆分【實(shí)驗(yàn)2-7】按基本

10、工資是否大于600將mylib.sy2_2拆分成兩個(gè)新數(shù)據(jù)集work.sy2_7_1 和 work.sy2_7_2。代碼如下:data sy2_7_1 sy2_7_2;set mylib.sy2_2;select;when (jbgz=600) output sy2_7_2;end;run;數(shù)據(jù)集的縱向合并【實(shí)驗(yàn)2-8】將上述拆分后的兩個(gè)數(shù)據(jù)集縱向合并恢復(fù)原樣,產(chǎn)生新的數(shù)據(jù)集 work.sy2_8。代碼如下:data sy2_8;set sy2_7_1 sy2_7_2;run;數(shù)據(jù)集的橫向合并【實(shí)驗(yàn)2-9】將mylib.sy2_2中職稱為“工人”的觀測(cè)拆分成一個(gè)僅含編號(hào)、姓名和基 本工資,一個(gè)

11、僅含有編號(hào)和實(shí)發(fā)工資的兩個(gè)新數(shù)據(jù)集work.sy2_9_1和work.sy2_9_2。然后 將 work.sy2_9_1 和 work.sy2_9_2 合并成一個(gè)新數(shù)據(jù)集 sy2_9。提取職稱為“工人”的觀測(cè):data sy2_9_0;set mylib.sy2_2;if (zc =工人);run;建立兩個(gè)數(shù)據(jù)集:data sy2_9_1;set sy2_9_0;keep bh xm jbgz;run;data sy2_9_2;set sy2_9_0;keep bh sfgz;run;橫向合并:data sy2_9;merge sy2_9_1 sy2_9_2;by bh;run;proc pr

12、int; run; /*列表顯示數(shù)據(jù)集 sy2_9*/數(shù)據(jù)的排序【實(shí)驗(yàn)2-10將 mylib.sy2_2按jbgz升序、sfgz降序排序后生成新的數(shù)據(jù)集work.sy2_10。 代碼如下:proc sort data= mylib.sy2_2 out = sy2_10;by jbgz descending sfgz; /*在變量前加descending選項(xiàng)為降序排序,缺省為升序*/run;proc print data= sy2_10; /*列表顯示數(shù)據(jù)集 sy2_10*/run;說明:在對(duì)兩個(gè)數(shù)據(jù)集橫向合并時(shí),為了避免因兩個(gè)數(shù)據(jù)集觀測(cè)順序不同造成混亂,一 般應(yīng)將兩個(gè)數(shù)據(jù)集分別按同一個(gè)變量(B

13、Y變量)排序后再合并,如【實(shí)驗(yàn)2-9】中的橫向 合并可寫成:Proc sort data = sy2_9_1;by bh;Proc sort data = sy2_9_2;by bh;run;data sy2_9;merge sy2_9_1 sy2_9_2;by bh;run;proc print; run;7.數(shù)據(jù)的列表顯示【實(shí)驗(yàn)2-11】列出數(shù)據(jù)集mylib.sy2_2中所有男性職工的編號(hào)、姓名、部門、基本工資。 代碼如下:Proc print data = mylib.sy2_2 label;var bh xm bm jbgz ;label bh =編號(hào)xm =姓名bm =部門jigz

14、=基本工資;where xb =男;run;2.4上機(jī)演練1 .使用編程方法對(duì)sashelp.class數(shù)據(jù)集進(jìn)行加工:(1)生成sex=(5子集; 生成只包含name,height,weight的子集(用數(shù)據(jù)集選項(xiàng)或SAS語(yǔ)句);增加新變量 ratio=weight/height;用SELECT和OUTPUT語(yǔ)句把CLASS數(shù)據(jù)集拆分為性別為男和女的兩個(gè)數(shù)據(jù)集.用DO循環(huán)語(yǔ)句讀入下列數(shù)據(jù)表:A 1 31.5A 2 29.8A 3 32.4B 1 40.1B 2 41.1B 3 42.0C 1 50.1C 2 51.2C 3 50.8 生成有3個(gè)變量(TYPE,GROUP,Y)9個(gè)觀測(cè)的數(shù)據(jù)集DABC;(2)用條件IF語(yǔ)句或數(shù)據(jù)集選項(xiàng)where生成只包含TYPE=B的數(shù)據(jù)集DAC.對(duì)SASUSERo admi

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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)論