【正文】
的數(shù)據(jù)集作統(tǒng)計(jì)分析。 options nodate pageno=1 linesize=80 pagesize=40。 data split。 set 。 array s{7} s1s7。 subject + 1。 do Time=1 to 7。 strength=s{time}。 output。 end。 drop s1s7。 run。 proc print data=split(obs=15) noobs。 title 39。Split Data Set39。 title2 39。First 15 Observations Only39。 run。 /*接左側(cè) */ proc transpose data=split out=totsplit prefix=Str。 by program subject。 copy time strength。 var strength。 run。 proc print data=totsplit(obs=15) noobs。 title 39。Totsplit Data Set39。 title2 39。First 15 Observations Only39。 run。 改變輸出地點(diǎn) 缺省情況下 , SAS過(guò)程輸出到 OUTPUT窗口 , SAS日志輸出到 LOG窗口 。 利用 SAS的 PRINTTO過(guò)程可以設(shè)定 SAS過(guò)程和日志的輸出地點(diǎn) 。 PRINTTO過(guò)程有以下功能: ? 改變過(guò)程輸出的目的地; ? 改變 SAS日志輸出的目的地; ? 有選擇地限制 SAS輸出; ? 將輸出結(jié)果存放在永久文件中; ? 將輸出直接送到打印機(jī)上; ? 將 SAS的輸出作為輸入數(shù)據(jù) ( 這時(shí)需要一些附加的程序語(yǔ)句 ) 。 PRINTTO過(guò)程句法 PROC PRINTTO option(s)。 選項(xiàng)說(shuō)明 注意:一般情況下 , PROC PRINTTO后面一定要加 RUN語(yǔ)句 。 若省略RUN語(yǔ)句 , 則會(huì)丟失 PRINTTO后面 DATA步或 PROC步第一行的輸出 。 沒(méi)有選項(xiàng) 恢復(fù)缺省時(shí)的輸出目的地L A B E L = 給存貯在 S A S 目錄冊(cè)中 S A S 日志或輸出結(jié)果加說(shuō)明標(biāo)簽L O G = 將 S A S 日志輸出到外部永久文件或 S A S 目錄冊(cè)中L O G = a nd P R I N T = 將 S A S 日志和運(yùn)行結(jié)果輸出到一個(gè)文件中N E W 替換原輸出文件P R I N T = 將運(yùn)行結(jié)果輸出到外部永久文件或 S A S 目錄冊(cè)中UNIT= 將結(jié)果直接輸出到文件標(biāo)記為 F T nn F 00 1 的文件中應(yīng)用舉例 例 將 SAS日志輸出到外部永久文件 。 proc printto log= 39。d:\39。 /*直接輸出到永久文件中 */ filename f1 39。d:\39。 proc printto log= f1。 /*輸出到文件標(biāo)記 */ 例 將運(yùn)行結(jié)果輸出到外部永久文件 。 filename f2 39。d:\39。 proc printto print=f2。 /*輸出到文件標(biāo)記 */ proc printto print= 39。d:\39。 /*直接輸出到永久文件中 */ 例 直接打印輸出結(jié)果 。 filename f printer。 proc printto print=f。/*直接打印 */ proc printto print=print。/*返回到缺省輸出地點(diǎn) */ 例 替換原輸出文件 。 proc printto print=39。d:\39。 log= 39。d:\39。 new。 proc print data=。 run。 添加觀測(cè) 利用 SAS的 APPEND過(guò)程可以將一個(gè) SAS數(shù)據(jù)集的觀測(cè)添加到另一個(gè) SAS數(shù)據(jù)集的后面 。 APPEND過(guò)程句法 PROC APPEND BASE=SASdataset DATA=SASdataset FORCE 。 APPEND過(guò)程中只需要一個(gè)語(yǔ)句 。 選項(xiàng)說(shuō)明: BASE=| OUT= 規(guī)定基本數(shù)據(jù)集的名子 DATA=| NEW= 規(guī)定要添加在基本數(shù)據(jù)集后面的數(shù)據(jù)集 名,缺省時(shí)使用最近創(chuàng)建的 SAS數(shù)據(jù)集 FORCE 強(qiáng)迫 PROC APPEND連接兩數(shù)據(jù)集 應(yīng)用舉例 例 有條件添加數(shù)據(jù)。 proc append base=data1 data=data2(where=(X=1))。 run。 proc append base=a data= (where=(year(date)=1999)) 。 run。 例中 , 使用數(shù)據(jù)集選項(xiàng) WHERE=或 WHERE語(yǔ)句來(lái)限制 DATA=的數(shù)據(jù)集中只有滿足條件的觀測(cè)被加到 BASE=的數(shù)據(jù)集中 。 數(shù)據(jù)庫(kù)復(fù)制 ? 利用 SAS的 COPY過(guò)程可以復(fù)制整個(gè) SAS數(shù)據(jù)庫(kù)或其中的數(shù)據(jù)庫(kù)成員。 COPY過(guò)程句法 PROC COPY OUT=libref1 IN=libref2 CLONE|NOCLONE CONSTRAINT=YES|NO DATECOPY INDEX=YES|NO MEMTYPE=(mtype(s)) MOVE ALTER=alterpassword。 EXCLUDE SASfile(s) / MEMTYPE=mtype。 SELECT SASfile(s) / MEMTYPE=mtype ALTER=alterpassword。 子語(yǔ)句說(shuō)明: ? Select規(guī)定要拷貝數(shù)據(jù)庫(kù) IN=中的成員; ? Exclude規(guī)定不拷貝數(shù)據(jù)庫(kù) IN=中的成員。 PROC COPY語(yǔ)句選項(xiàng) 選項(xiàng)說(shuō)明: I N | I N L I B | I N D D = 規(guī)定被拷貝的 S A S 數(shù)據(jù)庫(kù),此項(xiàng)必須規(guī)定O U T | O U T L I B | O U T D D = 規(guī)定拷貝數(shù)據(jù)庫(kù),此項(xiàng)必須規(guī)定M E M T Y P E | M T Y P E | M T = 規(guī)定被拷貝或移動(dòng)成員的類型M O V E 移走 I N = 數(shù)據(jù)庫(kù)中的相應(yīng)成員A L T E R = 移 動(dòng) 一 個(gè) 可 改 變 保 護(hù) 的 成 員 時(shí) , 要 寫 上 原 來(lái) 的 改 變?cè)L問(wèn)口令I(lǐng) N D E X = Y E S / N O 規(guī) 定 拷 貝 數(shù) 據(jù) 集 時(shí) 是 否 拷 貝 該 數(shù) 據(jù) 集 的 索 引 。 缺 省時(shí) I N D E X = Y E S有效的成員類型( MEMTYPE): A L L 所有成員,缺省值A(chǔ) C C E S S S A S / A C C E S S 軟件創(chuàng)建的存取文件C A T A L O G 目錄D A T A 數(shù)據(jù)集P R O G R A M 程序V I E W 視圖應(yīng)用舉例 例 兩個(gè) SAS邏輯庫(kù)之間復(fù)制數(shù)據(jù)集和目錄冊(cè)。 proc copy in=lib1 out=lib2 MTYPE=(data catalog)。 run。 例 將邏輯庫(kù) LIB1的所有 SAS文件移動(dòng)到 LIB2中。 proc copy in=lib1 out=lib2 move。 run。 例 選擇以 DAT開(kāi)頭的所有文件 。 data (alter=zsw)。 var=39。move39。 run。 proc copy in=ResDat out=work move。 select dat: (alter=zsw)。 run。