SAS編程技術(shù)過程步通用語句課件_第1頁
SAS編程技術(shù)過程步通用語句課件_第2頁
SAS編程技術(shù)過程步通用語句課件_第3頁
SAS編程技術(shù)過程步通用語句課件_第4頁
SAS編程技術(shù)過程步通用語句課件_第5頁
已閱讀5頁,還剩56頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、第10章 過程步通用語句清華大學(xué)經(jīng)管學(xué)院 朱世武ZhushwResdat樣本數(shù)據(jù):SAS論壇: 過程步通用語句可以分為兩類:過程信息語句;變量屬性語句。 PROC 語句 PROC語句用于規(guī)定將要運(yùn)行的SAS過程。SAS過程是已經(jīng)寫好的SAS程序。例10.1 PROC 調(diào)用打印輸出過程PRINT。proc print data=ResDat.class; var name age height;by sex;run;例中,打印數(shù)據(jù)集ResDat.CLASS中變量NAME, AGE和HEIGHT的觀測(cè)值,并以性別SEX分類。 - Sex=F - Obs Name Age Height 1 Alic

2、e 13 56.5 2 Barbara 13 65.3 3 Carol 14 62.8 4 Jane 12 59.8 5 Janet 15 62.5 6 Joyce 11 51.3 7 Judy 14 64.3 8 Louise 12 56.3 9 Mary 15 66.5- Sex=M - Obs Name Age Height 10 Alfred 14 69.0 11 Henry 14 63.5 12 James 12 57.3 13 Jeffrey 13 62.5 14 John 12 59.0 15 Philip 16 72.0 16 Robert 12 64.8 17 Ronald

3、15 67.0 18 Thomas 11 57.5 19 William 15 66.5語句格式 PROC program ;其中:program規(guī)定要運(yùn)行SAS的過程;options規(guī)定過程的選項(xiàng)。OPTIONS選項(xiàng)說明:通用選項(xiàng);過程特定選項(xiàng)。通用選項(xiàng): 應(yīng)用舉例 例10.2 打印列表過程。proc print data=ResDat.Idx000001 (obs=10); run;例中,在OUTPUT窗口打印輸出ResDat.Idx000001的前10觀測(cè)。例10.3 求均值過程。proc means data=ResDat.Idx000001 maxdec=3 css; var clp

4、r; run;例中,在OUTPUT窗口輸出變量CLPR 的校正平方和(CSS),輸出結(jié)果保留3位小數(shù)。例10.4 作圖過程選項(xiàng)。proc plot hpct=50 vpct=33;例中, 規(guī)定按橫豎50:33的比例作圖 。 VAR語句 VAR語句規(guī)定要分析的變量名。語句格式:VAR variables;其中:variables規(guī)定要分析的變量。例10.5 應(yīng)用舉例。proc means data=ResDat.class;var weight height;run; MEANS 過程 變量 N 均值 標(biāo)準(zhǔn)偏差 最小值 最大值 - Weight 19 100.0263158 22.7739335

5、 50.5000000 150.0000000 Height 19 62.3368421 5.1270752 51.3000000 72.0000000 -MODEL語句 MODEL語句規(guī)定過程需要的統(tǒng)計(jì)模型。語句格式:MODEL dependents=indepndenteffects/;其中: dependents規(guī)定模型中的因變量; indepndenteffects規(guī)定模型中的自變量; options不同過程的特定選項(xiàng)。 例10.6 模型設(shè)定。model y=x1-x5;model y1 y2=a b c d;例10.7 回歸分析過程模型設(shè)定。proc reg data=ResDat.

6、class ;model height=weight/ dw spec;output out=out1 r=r p=p l95=l u95=u;run;ID語句 ID語句規(guī)定用于識(shí)別觀測(cè)的變量。語句格式:ID variables;其中:variables規(guī)定用于識(shí)別觀測(cè)的變量。例10.8 規(guī)定替代觀測(cè)序號(hào)的變量。proc print data=ResDat.class;id name;run;例中,打印列表輸出數(shù)據(jù)集CLASS時(shí),用變量NAME的值來識(shí)別觀測(cè)。 例10.9 規(guī)定數(shù)據(jù)集轉(zhuǎn)置后的觀測(cè)值識(shí)別變量。proc transpose data=ResDat.class out=a let;i

7、d name;run; proc transpose data=ResDat.class out=a let;id sex;run;運(yùn)用上述程序段,查看輸出結(jié)果。 WHERE 語句 WHERE 語句選擇SAS數(shù)據(jù)集中的觀測(cè)。語句格式:WHERE where-expression;用法和DATA步中的用法類似。WHERE選項(xiàng)與其它選項(xiàng)的生效順序: 選項(xiàng)FIRSTOBS=和OBS=; WHERE選項(xiàng); 創(chuàng)建BY組。例10.10 選擇觀測(cè)值。proc print data=ResDat.class;where sex=M;run;例10.11 刪除觀測(cè)值。proc print data=ResDat

8、.class;where sex=M;run;CLASS 語句 CLASS 語句規(guī)定分類變量,SAS過程對(duì)分類變量的不同值分別進(jìn)行分析處理。語句格式:CLASS /CLASSES variables; 其中: variables規(guī)定分析數(shù)據(jù)集中的分類變量。 例10.12 應(yīng)用CLASS語句。proc means data=ResDat.class;var weight height;class sex;output out=a mean=w_m h_m;run;OUTPUT窗口輸出:Sex Obs Variable N Mean Std Dev Minimum Maximum - F 9 We

9、ight 9 90.1111111 19.3839137 50.5000000 112.5000000 Height 9 60.5888889 5.0183275 51.3000000 66.5000000 M 10 Weight 10 108.9500000 22.7271864 83.0000000 150.0000000 Height 10 63.9100000 4.9379370 57.3000000 72.0000000 -例10.13 應(yīng)用BY語句。proc means data=ResDat.class;var weight height;by sex;output out=b

10、mean=w_m h_m;run;OUTPUT窗口輸出:- Sex=F - Variable N Mean Std Dev Minimum Maximum - Weight 9 90.1111111 19.3839137 50.5000000 112.5000000 Height 9 60.5888889 5.0183275 51.3000000 66.5000000 - - Sex=M - Variable N Mean Std Dev Minimum Maximum - Weight 10 108.9500000 22.7271864 83.0000000 150.0000000 Heig

11、ht 10 63.9100000 4.9379370 57.3000000 72.0000000-BY 語句 BY 語句規(guī)定分組處理變量。使用BY語句時(shí),數(shù)據(jù)集必須先按BY變量排序。語句格式:BY variable-list;其中: variable-list規(guī)定變量列表。 例10.14 按BY組分開打印輸出。proc print data=ResDat.class;by sex;run;proc means data=ResDat.class;by sex;var weight;run;OUTPUT語句 OUTPUT語句規(guī)定過程產(chǎn)生的輸出數(shù)據(jù)集。語句格式:OUTPUT ;其中:sas-dat

12、a-set規(guī)定輸出的數(shù)據(jù)集;keyword=names規(guī)定輸出數(shù)據(jù)集中與關(guān)鍵詞相聯(lián)系的輸出變量名。例10.15 應(yīng)用舉例。proc means data=ResDat.class;var height weight;output out=out_m mean=h_m w_m ;run;例中,過程MEANS計(jì)算變量HEIGHT和 WEIGHT的均值統(tǒng)計(jì)量。關(guān)鍵詞MEAN=規(guī)定輸出數(shù)據(jù)集OUT_M中的變量為H_M 和W_M。H_M和W_M分別表示變量HEIGHT和 WEIGHT的均值。 QUIT語句 QUIT語句用來結(jié)束一個(gè)交互式過程。語句格式:QUIT;例10.16 應(yīng)用舉例。proc gplo

13、t data= ResDat.stk000002;plot clpr*date;title First Plot;run;plot oppr*date;title Second Plot;run;quit;FORMAT 語句FORMAT 語句規(guī)定變量的輸出格式。語句格式與DATA步中的格式相同。應(yīng)用FORMAT 語句的規(guī)則: PPROC步中的輸出格式只在PROC過程中有效,原來的輸出格式仍保留在數(shù)據(jù)集中; 同時(shí)使用幾個(gè)FORMAT語句時(shí),最后一個(gè)FORMAT語句有效。FORMAT 語句可以使用的輸出格式: SAS系統(tǒng)的輸出格式; PROC FORMAT過程自定義的輸出格式;例10.17 引用P

14、ROC FORMAT過程定義的輸出格式。proc format;value $sexfmt M = male F =female;proc print data=ResDat.class;var name sex;format sex $sexfmt.;run;例中,用PROC FORMAT過程定義的輸出格式SEXMFT.來規(guī)定變量SEX 的輸出格式。 Obs Name Sex 1 Alice female 2 Barbara female 3 Carol female 4 Jane female 5 Janet female 6 Joyce female 7 Judy female 8 Lo

15、uise female 9 Mary female 10 Alfred male 11 Henry male 12 James male 例10.18 規(guī)定變量的輸出格式。proc print data=ResDat.stk000002 (obs=10);var date ;format date yymmdd10.;run;proc print data=ResDat. stk000002 (obs=10);var date ;format date date7.;run;proc print data=ResDat. stk000002 (obs=10);var date ;format

16、date 8.;run;ATTRIB語句ATTRIB語句規(guī)定變量的屬性。語句格式與DATA步中的格式相同。ATTRIB語句規(guī)定屬性在PROC步中以及由該過程產(chǎn)生的輸出數(shù)據(jù)集中有效。例10.19 可參考的例句。attrib x y z length=$4 label=sample variables;attrib holiday informat=mmddyy. format=worddate.;attrib day1-day7 label=day of week week1-week4 label=week of month sale informat=comma8.2 format=doll

17、ar10. label=total sale;LABEL語句 LABEL語句規(guī)定變量的標(biāo)簽。語句格式與DATA步中的格式相同。LABEL語句可以出現(xiàn)在PROC過程的任意地方,并只在該過程中有效。例10.20 輸出圖形時(shí)坐標(biāo)軸使用變量標(biāo)簽。proc gplot data=ResDat.stk000002;plot clpr*date;label clpr=收盤價(jià) date=日期;run;第20章 SQL從單個(gè)表中檢索數(shù)據(jù)清華大學(xué)經(jīng)管學(xué)院 朱世武ZhushwResdat樣本數(shù)據(jù):SAS論壇: SELECT語句綜述 SELECT語句是PROC SQL的主要工具。使用SELECT語句可以識(shí)別、檢索和操

18、作表中的數(shù)據(jù),使用SELECT子句可以設(shè)定查詢條件。SELECT語句格式 SELECT object-item INTO macro-variable-specification FROM from-list GROUP BY group-by-item ORDER BY order-by-item ; SELECT 子句 語句格式SELECT object-item FROM from-list選擇所有列 語句格式:COLUMN-NAME= * (asterisk) select * from from-listSELECT子句中,“*”號(hào)表示選擇表中的所有列。例:proc sql outo

19、bs=3; select * from ResDat.dret;選擇特定列 語句格式:Select column-name from from-list例20.1 選擇特定列。proc sql outobs=3;title 股票代碼;select stkcd from resdat.lstkinfo;proc sql outobs=3;title 股票代碼和名稱;select stkcd,lstknm from resdat.lstkinfo;quit;用DISTINCT語句剔除查詢結(jié)果中重復(fù)觀測(cè) 語句格式:=distinct例20.2 刪除重復(fù)觀測(cè)。proc sql; select dist

20、inct stkcd from ResDat.yrret;quit;創(chuàng)建說明列 語句格式:SELECT TEXT, COLUMN-NAME例20.4 創(chuàng)建說明列。proc sql outobs=3; select Stock Code for, lstknm, is, stkcd from ResDat.lstkinfo; quit; 輸出窗口結(jié)果: 最新股票名稱| Latest Stock 股票代碼|Sto Name ck Code - Stock Code for S深發(fā)展A is 000001 Stock Code for 萬科A is 000002 Stock Code for *ST

21、國(guó)農(nóng) is 000004計(jì)算新列值 語句格式:Calculating Values =Calculating Expression of columns 例20.5 計(jì)算股票每日成交金額。proc sql outobs=3; title Trading Sum; select stkcd, lstknm, clpr*trdvol format=12.2 from ResDat.qttndist;quit; Trading Sum 最新股票名稱| 股票代碼|Sto Latest Stock ck Code Name - 000001 S深發(fā)展A 3946648.52 000001 S深發(fā)展A 1

22、420743.60 000001 S深發(fā)展A 1120732.50為列分配別名 語句格式:SELECT calculation-form 別名必須符合SAS名稱要求,別名只在當(dāng)前的查詢中有效。例20.6 為列分配別名。proc sql outobs=3; title Trading Sum; select stkcd, lstknm, clpr*trdvol as trdsum format=12.2 from ResDat.qttndist;quit; Trading Sum 最新股票名稱| 股票代碼|Sto Latest Stock ck Code Name trdsum - 000001

23、 S深發(fā)展A 3946648.52 000001 S深發(fā)展A 1420743.60 000001 S深發(fā)展A 1120732.50CALCULATED 語句 語句格式:Calculated Column-name使用別名引用一個(gè)計(jì)算過的列值時(shí),必須使用Calculated 關(guān)鍵詞,并將Calculated放在列名稱之前,以此告知PROC SQL這個(gè)列是經(jīng)計(jì)算得到的。proc sql outobs=3;select stkcd,lstknm,date,clpr*mcfacpr as adjpr format 8.2,(calculated adjpr*trdvol) as trdsum form

24、at 12.2 from resdat.qttndist;quit; 最新股票名稱|股票代碼|Sto Latest Stockck Code Name 日期|Date adjpr trdsum -000001 S深發(fā)展A 1991-01-02 66.94 3946648.52000001 S深發(fā)展A 1991-01-03 66.89 1420743.60000001 S深發(fā)展A 1991-01-04 66.75 1120732.50CASE表達(dá)式 語句格式: CASE WHEN when-condition THEN result-expression END例20.7 簡(jiǎn)單形式的Case表達(dá)

25、式。proc sql outobs=3;select stkcd,lstknm,lstdt, case when exchflg=1 then 上交所 when exchflg=2 then 深交所 else 所有交易所 end as exchflgfrom resdat.lstkinfoorder by lstdt; quit;例中,將股票信息表lstkinfo交易所標(biāo)識(shí)(exchflg)的編碼值進(jìn)行轉(zhuǎn)換,同時(shí)得到新的交易所標(biāo)識(shí)列及相關(guān)數(shù)值。 最新股票名稱|股票代碼|Sto Latest Stock 股票上市日|Lck Code Name ist Date exchflg-000005 ST

26、星源 1990-12-10 深交所600652 愛使股份 1990-12-19 上交所 600602 廣電電子 1990-12-19 上交所使用ORDER BY語句排序 語句格式ORDER BY order-by-item , . order-by-item ; 選項(xiàng)說明: order-by-item 可以是如下: integer等同于一個(gè)列在SELECT子句中的位置column-name列的名稱或者別名sql-expression見附錄中的sql-expressionASC升序排列數(shù)據(jù),默認(rèn)方式DESC降序排列數(shù)據(jù)例20.9 對(duì)股票上市時(shí)間列進(jìn)行排序。proc sql outobs=3;se

27、lect lstknm,lstdt from resdat.lstkinfoorder by lstdt; quit;最新股票名稱|Latest Stock 股票上市日|LName ist Date-ST星源 1990-12-10愛使股份 1990-12-19廣電電子 1990-12-19可以通過指定列在SELECT子句中的整數(shù)位置對(duì)該列排列。例20.11 按第4列排序。proc sql outobs=3;select stkcd,lstknm,date,clpr*mcfacpr as adjpr format 8.2from resdat.qttndistorder by 4 desc;qu

28、it; 最新股票名稱|股票代碼|Sto Latest Stockck Code Name 日期|Date adjpr-600652 愛使股份 2001-05-15 105881.8600652 愛使股份 2001-05-16 103950.1600652 愛使股份 2001-05-14 103020.1用WHERE語句選擇觀測(cè) 語句格式WHERE sql-expression 選項(xiàng)說明: sql-expression (見sql-expression定義). 例20.13 用WHERE語句選擇1991年以前上市的股票。proc sql outobs=3;select lstknm, lstdt

29、 from resdat.lstkinfo where lstdt31dec1991d;quit; 最新股票名稱|Latest Stock Name 股票上市日|List Date-S深發(fā)展A 1991-04-03萬科A 1991-01-29*ST國(guó)農(nóng) 1991-01-14使用IN算符例20.14 簡(jiǎn)單IN算符用法。proc sql outobs=3;select lstknm, stkcd from resdat.lstkinfo where stkcd in (000001 600651 000004);quit;最新股票名稱| Latest Stock Name 股票代碼|Stock C

30、ode-S深發(fā)展A 000001*ST國(guó)農(nóng) 000004飛樂音響 600651使用BETWEEN-AND 算符 例20.16 使用BETWEEN-AND算符選擇滿足一定范圍的觀測(cè)。proc sql;create table stkinfo1991 as select * from resdat.lstkinfowhere lstdt between 1jan1991d and 31dec1991d;quit;使用LIKE算符 例20.17 使用匹配算符LIKE選擇觀測(cè)。proc sql;select stkcd,lstknm from resdat.lstkinfo where lstknm

31、like ST%;quit;股票代碼|Sto ck Code 最新股票名稱| Latest Stock Name -000005 ST星源600603 ST興業(yè)使用匯總函數(shù)匯總數(shù)據(jù) 使用匯總函數(shù)(aggregate function or summary function)可以產(chǎn)生數(shù)據(jù)的統(tǒng)計(jì)量。 用WHERE子句匯總數(shù)據(jù) 例20.19 使用乘法函數(shù)算出代碼為000002的股票調(diào)整后的收盤價(jià)。proc sql outobs=3;select stkcd,lstknm,clpr*mcfacpr as adjpr from resdat.qttndist where stkcd=000002;quit; 最新股票名稱| 股票代碼

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論