第6章_創(chuàng)建數(shù)據(jù)集.ppt_第1頁
第6章_創(chuàng)建數(shù)據(jù)集.ppt_第2頁
第6章_創(chuàng)建數(shù)據(jù)集.ppt_第3頁
第6章_創(chuàng)建數(shù)據(jù)集.ppt_第4頁
第6章_創(chuàng)建數(shù)據(jù)集.ppt_第5頁
已閱讀5頁,還剩84頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第6章 創(chuàng)建數(shù)據(jù)集,蔡德利 tsaid 黑龍江八一農(nóng)墾大學植物科技學院,本章主要內(nèi)容,概述 data step 加工數(shù)據(jù)集 proc step,概述,sas對數(shù)據(jù)的管理 通常,有兩種: sas數(shù)據(jù)集(data set) sas數(shù)據(jù)視圖(data view),概述,概述,sas數(shù)據(jù)視圖只有描述部分,沒有數(shù)據(jù)部分,但描述部分包含了足夠的信息以找到保存在其他文件中的數(shù)據(jù); 數(shù)據(jù)視圖減少了維護費用。 如果改變了源數(shù)據(jù),數(shù)據(jù)視圖將隨著改變。 可由sql、access和data step產(chǎn)生。,概述,libname命令 作用:指定庫標記。 一般格式: libname 庫標記 文件夾位置 選項; 例如:指定目錄“g:sas統(tǒng)計分析sas”為庫標記mysaslib libname mysaslib g:sas統(tǒng)計分析sas;,概述,sas語言是一種專用的數(shù)據(jù)管理、分析語言,它提供了很強的數(shù)據(jù)操作能力。 表現(xiàn)在 它可以輕易地讀入任意復雜格式的輸入數(shù)據(jù),并可以對輸入的數(shù)據(jù)進行計算、子集選擇、更新、合并、拆分等操作。 另外,sas系統(tǒng)還提供了用來訪問其它數(shù)據(jù)庫系統(tǒng)如sybase、oracle的接口,訪問各種微機用數(shù)據(jù)庫文件如foxpro、excel的接口及向?qū)?,并提供了一個sql過程來實現(xiàn)數(shù)據(jù)庫查詢語言sql的功能。,概述,sas語言的自編程計算功能主要在數(shù)據(jù)步實現(xiàn)。 一個sas數(shù)據(jù)步相當于一個單獨運行的程序。 但是,sas語言又是一個專用數(shù)據(jù)處理語言,所以sas數(shù)據(jù)步有其他語言所沒有的特點。,概述,例如 /* sasprog0601.sas */ data a; put x= y= z=; input x y; z=x+y; put x= y= z=; cards; 10 20 100 200 ; run;,概述,運行后在log窗口顯示 x=. y=. z=. x=10 y=20 z=30 x=. y=. z=. x=100 y=200 z=300 x=. y=. z=. note: the data set work.a has 2 observations and 3 variables. ,概述,程序的運行流程: 1. data語句標志了數(shù)據(jù)步開始,并指定了數(shù)據(jù)步結(jié)束時要生成的數(shù)據(jù)集名字為a(實際是work.a)。 2. 第一個put語句要輸出變量x、y、z的值, 但它們還都沒有定義,所以顯示為三個缺失值。 3. input語句,從cards語句后面的數(shù)據(jù)行中讀取變量x的值10,變量y的值20。 4. 下一個賦值語句計算變量z的值得到30。因此,log 中的第二行輸出顯示三個變量的值分別為10、20、30。,概述,5. 從cards語句開始到空分號行的各行是非執(zhí)行的,程序運行到run語句,發(fā)現(xiàn)這是本數(shù)據(jù)步的最后一個語句,按一般的程序語言的規(guī)則,程序到這里就應該結(jié)束了,但是,sas是一個專用數(shù)據(jù)處理語言,如果按一般語言的規(guī)則,程序中的第二行數(shù)據(jù)(100 200)就不能被讀入。所以,這個程序運行到run語句后,把讀入的觀測(這是第一號觀測)寫入輸出數(shù)據(jù)集, 6. 流程又返回到data語句后的第一個可執(zhí)行語句開始執(zhí)行,并先把所有的變量置初值為缺失值。于是,第一個put語句的結(jié)果顯示三個變量均為缺失值,而不是上一步的10、20、30。,概述,7. input語句又從數(shù)據(jù)行中讀入下一個觀測,把變量x、y賦值為100、200。讀取位置由運行時設置的一個數(shù)據(jù)指針指示。然后計算變量z的值得300。于是put語句輸出的x、y、z值分別為100、200、300。 8. 流程跳過cards語句到空語句,到數(shù)據(jù)步結(jié)尾,把第二號觀測輸出到數(shù)據(jù)集。 9. 再返回到數(shù)據(jù)步開頭,把變量值賦初值為缺失值,所以第一個put語句輸出的三個變量值為缺失值。 10. 運行到input語句,應該讀入下一個觀測,但是查詢數(shù)據(jù)指針發(fā)現(xiàn)已經(jīng)讀完了所有數(shù)據(jù),所以本數(shù)據(jù)步結(jié)束,并把兩個觀測寫入數(shù)據(jù)集work.a中。,概述,從這個例子可以看出sas數(shù)據(jù)步程序和普通程序的一個重大區(qū)別: sas數(shù)據(jù)步如果有數(shù)據(jù)輸入,比如用input、set、merge、update、modify等語句讀入數(shù)據(jù),則數(shù)據(jù)步中隱含了一個循環(huán)。,數(shù)據(jù)步因為有這樣一個隱含循環(huán),所以也提供了用來查詢某一步是第幾次循環(huán)的特殊變量 _n_,它的值為數(shù)據(jù)步循環(huán)計數(shù)值。,概述,data step 流程:,概述,data step,第一種方式語法: data 數(shù)據(jù)集名; input 變量列表; cards; ;,data、input和cards三個關鍵詞缺一不可。,注意:cards語句在input語句之后,data step,data語句 作用: 標志數(shù)據(jù)步的開始。 命名將要創(chuàng)建的sas數(shù)據(jù)集。 cards語句 作用: 用于直接輸入數(shù)據(jù),標志著數(shù)據(jù)塊的開始,data step,直接輸入sas數(shù)據(jù): /* sasprog0602.sas */ data temp; input x y; cards; 34 56 78 90 35 67 89 10 23 65 77 45 ; run;,sas默認按列來分隔變量,可是這里只有兩個變量,輸成兩列數(shù)據(jù)太長,因此加上,sas見到這個符號,在按變量名依次讀取完數(shù)據(jù)后,不是跳到下一行,而是繼續(xù)在該行讀數(shù)據(jù),直至本行結(jié)束或到達分號為止。,數(shù)據(jù)集work.temp 輸入變量x,y, 的作用是不換行,連續(xù)輸入,data step,第二種方式語法: data 數(shù)據(jù)集名; infile 文件名 input 變量列表;,用infile語句指定了一個外部數(shù)據(jù)文件,所有需要輸入的數(shù)據(jù)存放在該文件中,從而取代了第一種方式中的cards語句及其下列的一連串數(shù)據(jù),當數(shù)據(jù)比較多的時候,用第二種方式可以使程序看上去顯得比較簡潔。,注意:infile語句在input語句之前,data step,infile語句 作用: 確定一個包含原始數(shù)據(jù)的外部文本文件。 一般格式: infile 外部文件名 options; 選項(options)可以有選擇地讀取外部文件中的記錄: firstobs=n1表示從第n1條記錄開始讀取 obs=n2表示共讀取n2條記錄,data step,從外部文件讀入數(shù)據(jù)示例: /* sasprog0603.sas */ data temp; infile g:sas統(tǒng)計分析sasdatatemp.dat; input x y; run;,data step,input語句 作用: 讀入由語句指定的數(shù)據(jù)列。 為相應的數(shù)據(jù)域定義變量名。 確定變量的讀入模式。 一般格式: input 設定1設定n|;,data step,設定的四種格式: list:變量名 $:輸入格式 column :變量名 $始列-終列 formatted :指針 變量名 輸入格式 ( 指針:n|+n ) named :變量名=$始列-終列 輸入換行控制: :不換行等待下一個input 語句 :形成輸出記錄時輸入也不換行,data step,input語句-list格式(自由格式),input 變量名 $:輸入格式 變量名 $:輸入格式;,說明: 源文件中字段間至少有一個空格或特定字符分隔; 字段只能按序輸入; 缺失值必須用句點(.)表示; 字符變量的值不能含有空格,長度一般不超過8。,data step,/* sasprog0604.sas */ data c9501; input name $ sex $ math chinese; cards; 李明 男 92 98 張紅藝 女 89 106 王思明 男 86 90 張聰 男 98 109 劉穎 女 80 110 ; run;,按順序列出每個觀測的各個變量名,中間用空格分開。 變量如果是字符型,需要在變量名后加一個$符號,$符號可以與變量直接相連,也可以間隔一個空格。,data step,/* sasprog0605.sas */ data a; input date yymmdd8. sales; format date yymmdd10.; cards; 56-6-13 1100 67.12.15 1200 78 10 2 1300 891001 1400 19960101 1500 20020901 1600 ; run; proc print; run;,需要按格式輸入,可在變量名后加格式名,最常用的是輸入日期數(shù)據(jù); 本例日期占8列,不足用空格補足; 日期在sas中是按數(shù)值存儲的,要顯示日期值,必須設置輸出格式,本例用format語句。,data step,/* sasprog0606.sas */ data b; input date yymmdd10. sales; format date yymmdd10.; cards; 56-6-13 1100 67.12.15 1200 78 10 2 1300 891001 1400 19960101 1500 20020901 1600 1956-6-13 1100 1967.12.15 1200 1978 10 2 1300 19891001 1400 19960101 1500 20020901 1600 ; run; proc print; run;,yymmdd六位數(shù)的日期 yyyymmdd帶世紀格式的日期 yyyymmdd10.帶世紀的,中間有分隔符或無分隔符的日期,data step,/* sasprog0607.sas */ data b; input sales date : yymmdd10. ; format date yymmdd10.; put date=; cards; 1100 56-6-13 1200 67.12.15 ; run;,如果日期變量不在第一項,并且與前一項用空白分隔,可以在格式名yymmdd10.前面加一個冒號表示允許日期值前面的空白。 “變量名:格式”表示讀取當前第一個非空列開始的值,并用指定的輸入格式轉(zhuǎn)換。,data step,input語句-column格式,input 變量名 $始列-終列 變量名 $始列-終列;,說明: 源文件中各變量所在位置必須是規(guī)則的; 每個變量按指定的始列、終列讀入; 字符變量的長度不受缺省值的限制(但200); 變量值可含空格,變量輸入次序可以是任意的;任何字段或其部分可重復讀入。,data step,一個典型原始數(shù)據(jù)文件(overseas.dat)內(nèi)容:,data step,練習:用column格式讀入文件overseas.dat,創(chuàng)建sas數(shù)據(jù)集名為mylib.column,最后查看該數(shù)據(jù)集的內(nèi)容。 /* sasprog0608.sas */ data mylib.column; infile e:sas統(tǒng)計分析sasdataoverseas.dat; input date $ 1-9 dest $ 10-12 boarded 13-15; run; proc print data=mylib.column; run;,data step,/* sasprog0609.sas */ data c9502; input name $ 1-7 sex $ 8-9 math 11-12 chinese 14-16; cards; 李明 男 92 98 張紅藝 女 89 106 王思明 男 86 90 張聰 男 98 109 劉穎 女 80 110 ; run;,將sasprog0603的例子改為數(shù)據(jù)上下行對齊,然后用column格式讀入。,data step,/* sasprog0610.sas */ data pids; input year 7-10 mon 11-12 day 13-14; cards;110101196902150059 ; run;,column不要求數(shù)據(jù)項之間分開,所以經(jīng)常用來輸入緊縮格式的數(shù)據(jù)。 比如,輸入一批身份證號,從中提取生日的年、月、日信息。,data step,input語句-formatted格式,input 指針控制符 變量名 $輸入格式;,說明: 適合讀入含有不標準數(shù)據(jù)的文件 formatted 格式中可以: 將輸入指針移到數(shù)據(jù)域的開始位置; 定義變量名; 定義輸入格式,data step,指針控制符: n 表示將輸入指針移動到第n列; +n 表示將輸入指針向后移動n列。 如: input lname $15. 21 fname +2 sex $1;,data step,練習:用formatted模式讀入文件overseas.dat。創(chuàng)建后的sas數(shù)據(jù)集名為mylib.format。 /* sasprog0611.sas */ data mylib.format; infile d:overseas.dat; input 1 date $9. 10 dest $3. 13 boaeded 3.; run; proc print data=mylib.format; run;,data step,data步中設定變量屬性的語句:,data step,12234.12,comma8.2,dollar8.2,8.2,12234.12,12234.12,12234.1,12234,12234.1234,data step,sas內(nèi)部該日期等于距離1960年1月1日的天數(shù),20oct97,ddmmyy8,mmddyy8,實際存儲數(shù)值 13807,20/10/97,10/20/97,20/10/97,data step,變量的屬性: (1)字符型還是數(shù)值型:input在讀入字符型時在變量后要加$符號。 (2)變量標簽(label):可以給變量加一個長度不超過40個字符(漢字不超過20個)的標簽,標簽可以用在報表中。 (3)變量存儲長度(length):數(shù)值數(shù)據(jù)一般長度為8字節(jié),也可以對取值較小的數(shù)值規(guī)定較小的長度以節(jié)省存儲空間;字符型變量的缺省長度為8字節(jié)。,data step,變量的屬性: (4)變量的輸出格式(format):指定如何顯示變量的值。 (5)變量的輸入格式(informat):指定如何把外部數(shù)據(jù)轉(zhuǎn)換為sas數(shù)據(jù)。 數(shù)據(jù)步中的attrib語句可以指定這些屬性,格式為: attrib 變量名 屬性名=屬性值;,data step,/* sasprog0612.sas */ data sales; attrib name label=“姓名“ length=$10 date label=“日期“ format=yymmdd10. informat=mmddyy10. amount label=“金額“ format=10.2; input name $ 1-10 date amount; cards; 張鵬 10/15/1998 2000 李志明 1/3/99 1500 王敏 11/5/99 3000 ; run; proc print noobs label; run;,可以同時指定多個變量的屬性; 可以為一個變量同時指定多個屬性。,加工數(shù)據(jù)集,用set語句復制數(shù)據(jù)集 /* sasprog0613.sas */ data c9501; set mylib.youth; run;,把mylib.youth復制為work.c9501 該程序流程也隱含著一個循環(huán),其中的set語句是讀取觀測的語句。,加工數(shù)據(jù)集,修改數(shù)據(jù)集 /* sasprog0614.sas */ data c9501; set mylib.youth; if height170 then height=170; run;,原數(shù)據(jù)集中趙大可身高172,修改后為170;,加工數(shù)據(jù)集,使用keep語句指定保留數(shù)據(jù)集中的變量,drop語句指定丟棄數(shù)據(jù)集中的變量。 /* sasprog0615.sas */ data c9501; set mylib.youth; keep name height weight; run;,生成新數(shù)據(jù)集,保留原數(shù)據(jù)集中name、height、weight三個變量;,加工數(shù)據(jù)集,/* sasprog0616.sas */ data c9501; set mylib.youth; drop age,sex; run;,丟棄age、sex變量,與上例作用相同; 用這種方法可以取得數(shù)據(jù)集的某些列的子集。,加工數(shù)據(jù)集,/* sasprog0617.sas */ data c9501a; set c9501; if height150 and weight50; run;,也可以取得數(shù)據(jù)集的某些行的子集。 身高大于150cm,并且體重大于50kg的觀測。 這里if語句不同于分支語句,它沒有then部分。用于取出滿足條件的行,形成子集。,加工數(shù)據(jù)集,利用if-then結(jié)合delete篩選數(shù)據(jù)集 /* sasprog0618.sas */ data c9501; set c9501; if height150 then delete; run; 程序執(zhí)行后,身高小于150的記錄均被刪除。,加工數(shù)據(jù)集,在用set語句引入數(shù)據(jù)集時,可以給數(shù)據(jù)集加選項,格式為: 數(shù)據(jù)集名(數(shù)據(jù)集選項); 選項包括: keep=:表示引入時只要指定的變量; drop=:表示不引入指定的變量; obs=:表示讀取觀測時,讀到指定的序號為止; fristobs:表示從指定的序號開始讀起,不讀取序號之前的觀測。,加工數(shù)據(jù)集,/* sasprog0619.sas */ data huge; array x(10); do i=1 to 1000000; do j=1 to 10; x(j) = normal(0); end; output; end; drop i j; run; data new; set huge(obs=100 keep=x1 x2); run;,產(chǎn)生一個10個變量,1百萬個觀測的數(shù)據(jù)集work.huge; 從中復制前100行和兩個變量,形成新數(shù)據(jù)集work.new。,加工數(shù)據(jù)集,拆分數(shù)據(jù)集 /* sasprog0620.sas */ data datam dataf; set mylib.youth; select(sex); when(男) output datam; when(女) output dataf; otherwise put sex=有錯; end; drop sex; run; proc print data= datam;run; proc print data= dataf;run;,把mylib.youth數(shù)據(jù)集中的男生放到work.datam中,將女生放到work.dataf中。 output是一個可執(zhí)行語句,它強制當前觀測寫入到語句指定的數(shù)據(jù)集中。,加工數(shù)據(jù)集,縱向合并數(shù)據(jù)集 幾個結(jié)構(gòu)相同的數(shù)據(jù)集上下地合并在一起; 比如: data classes; set class1 class2 class3 class4; run;,加工數(shù)據(jù)集,加工數(shù)據(jù)集,/* sasprog0621.sas */ data new; set datam(in=male) dataf(in=female); if male=1 then sex=男; if female=1 then sex=女; run;,將前例拆分的男生、女生兩個數(shù)據(jù)集合并; 為了指示觀測來自哪一個小數(shù)據(jù)集,在set語句數(shù)據(jù)集名后可加一個小括號,里面加上“in=變量名”,該變量取1時表示觀測來自該數(shù)據(jù)集,取0時不是來自該數(shù)據(jù)集。,加工數(shù)據(jù)集,橫向合并數(shù)據(jù)集 兩個(或多個)數(shù)據(jù)集如果包含了同樣一些觀測的不同屬性(變量),且各個數(shù)據(jù)集的觀測順序是一一對應的,則可以通過merge語句合并到一個新數(shù)據(jù)集; 比如: data new; merge c9501u c9501v c9501w; run;,加工數(shù)據(jù)集,如果順序不對應,則合并結(jié)果不正確。所以橫向合并一般采取按關鍵字合并的方法。 即把每個數(shù)據(jù)集按照相同的、能唯一區(qū)分各個觀測的一個(或幾個)變量排序,然后用by語句和merge語句,使原來觀測順序不一致或個數(shù)不同的數(shù)據(jù)集正確合并。,加工數(shù)據(jù)集,加工數(shù)據(jù)集,/* sasprog0622.sas */ data c9501x; set mylib.youth; keep name sex; run; data c9501y; set mylib.youth; keep name height weight; run; proc sort data=c9501x; by name; run; proc sort data=c9501y; by name; run; data new; merge c9501x c9501y; by name; run; proc print;run;,把mylib.youth拆分為包含name、sex的數(shù)據(jù)集c9591x; 把mylib.youth拆分為包含name、height、weight的數(shù)據(jù)集c9591y; 按關鍵字橫向合并。 sort是排序過程。,proc step,sas程序的過程步表示一個處理過程,如排序、t檢驗、方差分析等等。 過程步以關鍵字proc開始,后面緊跟著過程名,用以區(qū)分不同的程序步,并以關鍵字run結(jié)束。,一般格式如下: proc 過程名 選項列表; (其它語句); (其它語句); run;,proc step,sas程序中涉及的過程多達數(shù)百種; 實現(xiàn)統(tǒng)計功能時常用的過程也有數(shù)十種; 現(xiàn)將最為常用的過程名稱及其所能實現(xiàn)的功能列入下表。,proc step,proc step,對sas文件進行操作的datasets過程: 功能: 將sas文件從一個庫中拷入另一個庫中; 對sas文件進行重命名; 修復損壞的sas文件; 刪除sas文件; 列出某一sas庫中所有的sas文件; 列出一個sas數(shù)據(jù)集的屬性,如最后修改時間、數(shù)據(jù)是否壓縮、數(shù)據(jù)是否索引等; 對sas文件進行設置密碼的操作; 向sas數(shù)據(jù)集添加記錄; 對sas數(shù)據(jù)集的屬性以及數(shù)據(jù)集內(nèi)變量的屬性進行修改; 創(chuàng)建或刪除sas數(shù)據(jù)集的索引; 創(chuàng)建并管理sas數(shù)據(jù)集的核查文件; 創(chuàng)建或刪除sas數(shù)據(jù)集的完整性規(guī)則。,proc step,datasets格式: proc datasets ; age 當前文件名 相關文件名列表; append base=數(shù)據(jù)集名 ; audit 文件名; initiate; change 舊文件名1=新文件名1 ; contents ; copy out=庫標記 ; exclude 文件名 ;(該語句只能在copy語句后出現(xiàn),不能和select語句同時出現(xiàn)) select 文件名 ;(該語句只能在copy語句后出現(xiàn),不能和exclude語句同時出現(xiàn)) delete 文件名 ; exchange文件名1=交換文件名1 ; modify 文件名 ; ; repair文件名 ; save文件名 ; run;,proc step,常用功能說明: age語句用于批量地重命名文件,按照當前文件和相關文件的排列順序,依次將后一個文件名重命名給前一個文件,結(jié)果是最后一個文件被刪除,當前文件名被廢棄。 proc datasets library=daily; age today day1-day7; run; 以上程序?qū)?shù)據(jù)庫daily中的數(shù)據(jù)集today改名為day1,day1改名為day2,day2改名為day3,原來的最后一個文件名day7被丟棄。,proc step,常用功能說明: append語句執(zhí)行向數(shù)據(jù)集添加記錄的功能,選項”base=數(shù)據(jù)集名”用以指定要添加記錄的數(shù)據(jù)集,”data=數(shù)據(jù)集名”則指定所要添加的記錄所在的數(shù)據(jù)集,此選項若省略則默認為當前數(shù)據(jù)集(最近一次操作的數(shù)據(jù)集)。 proc datasets; append base=d1 data=d2 force; run; 以上程序?qū)2中的數(shù)據(jù)縱向合并到d1,如果d2中有d1中不存在的變量,則相應數(shù)據(jù)會被舍棄。,proc step,常用功能說明: audit語句用于對文件的核查,生成核查文件并對其進行管理; change語句以新文件名替換舊文件名; contents語句用于顯示指定數(shù)據(jù)集或當前數(shù)據(jù)集的各種屬性; copy語句用于將當前庫中相應的文件拷貝到指定的庫中,選項“out=庫標記”用來指定文件要拷貝到的目標庫;,proc step,常用功能說明: delete語句用于刪除指定的文件; exchange語句的功能是將等號前后兩個文件的文件名進行互換; modify語句用于修改文件各方面的屬性; repair語句用于對指定的文件(受到過某種損壞)進行修復,使其恢復到可以使用的狀態(tài); save語句的功能是將其指定的文件保留,當前庫中的其他所有文件則被刪除。,proc step,proc step,對數(shù)據(jù)文件中記錄進行排序的sort過程: 一般格式: proc sort 選項列表; by 變量名1 ; run; by語句即用以指定排序所要依據(jù)的變量,可為數(shù)值型也可為字符型。 多個變量時,先按靠前的變量排序,再按照靠后的變量排序。 by語句中每個變量前可用descending/ascending選項來指定按照其排序的方式(降序或升序),默認狀態(tài)為升序。 proc sort語句后各選項含義及其用法見下表。,proc step,proc step,將數(shù)據(jù)文件輸出顯示的print過程 功能: 將sas數(shù)據(jù)集的記錄以一定的方式顯示到輸出設備(顯示屏); 可以顯示其全部的變量或部分變量; 可以創(chuàng)建從簡單列表到可進行數(shù)據(jù)匯總的各種報告的各種不同的表單。,proc step,print的一般格式 proc print options; by var-1 ; pageby variable; sumby variable ; id variable ; sum variable; var variable; run;,proc step,by語句在所有過程中的用法都相同,即將數(shù)據(jù)集分割為若干小數(shù)據(jù)集分別進行處理。 pageby語句用來控制換頁時變量的顯示方式,對于其后所指定的變量,相同的值不會顯示在不同的頁中,該變量某一值的記錄在一頁的剩余部分顯示不下時,則從該值的第一條記錄開始換行顯示。 sumby語句的作用和pageby語句相似,只不過是將換頁的動作換為求和,對指定變量的每一值計算var變量的總計值。 id語句的作用是用指定的變量值代替記錄編號對每一條記錄進行標識。 sum語句用于指定報告中要進行求和操作的變量。 var語句用于指定要在報告中顯示的變量。,proc step,過程步常用語句,var 語句 var 語句在很多過程中用來指定分析變量。 在var 后面給出變量列表: var 變量名1 變量名2 變量名n; 變量名列表可以使用省略的形式,如x1-x3。 例如: var math chinese;,過程步常用語句,model 語句 model語句在一些統(tǒng)計建模過程中用來指定模型的形式。其一般形式為 model 因變量 自變量表 / 選項; 比如 model math=chinese; 即用語文成績預測數(shù)學成績。,過程步常用語句,by語句 一般用來指定一個或幾個分組變量,根據(jù)這些分組變量值把觀測分組,然后對每一組觀測分別進行本過程指定的分析。 在使用帶有by語句的過程步之前一般先用sort過程對數(shù)據(jù)集排序。 比如,假設我們已經(jīng)把c9501數(shù)據(jù)集按性別排序,則下列print 過程可以把男、女生分別列出: proc print data=c9501; by sex; run;,過程步常用語句,class語句 在一些過程(如方差分析)中,使用class語句指定一個或幾個分類變量,它實際相當于因變量。 而在另一些過程(如means)中,class語句作用與by語句類似,可以指定分類變量,把觀測按分類變量分類后分別進行分析。 使用class時不需要先按分類變量排序。,過程步常用語句,output語句 在過程步中經(jīng)常用output語句指定輸出結(jié)果存放的數(shù)據(jù)集。 不同過程中把輸出結(jié)果存入數(shù)據(jù)集的方法各有不同,output語句是用得最多的一種,其一般格式為: output out輸出數(shù)據(jù)集名 關鍵字變量名 關鍵字變量名 ; 其中用out給出了要生成的結(jié)果數(shù)據(jù)集的名字,用“關鍵

溫馨提示

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

評論

0/150

提交評論