【正文】
的數(shù)據(jù)集作統(tǒng)計分析。 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過程輸出到 OUTPUT窗口 , SAS日志輸出到 LOG窗口 。 利用 SAS的 PRINTTO過程可以設(shè)定 SAS過程和日志的輸出地點(diǎn) 。 PRINTTO過程有以下功能: ? 改變過程輸出的目的地; ? 改變 SAS日志輸出的目的地; ? 有選擇地限制 SAS輸出; ? 將輸出結(jié)果存放在永久文件中; ? 將輸出直接送到打印機(jī)上; ? 將 SAS的輸出作為輸入數(shù)據(jù) ( 這時需要一些附加的程序語句 ) 。 PRINTTO過程句法 PROC PRINTTO option(s)。 選項(xiàng)說明 注意:一般情況下 , PROC PRINTTO后面一定要加 RUN語句 。 若省略RUN語句 , 則會丟失 PRINTTO后面 DATA步或 PROC步第一行的輸出 。 沒有選項(xiàng) 恢復(fù)缺省時的輸出目的地L A B E L = 給存貯在 S A S 目錄冊中 S A S 日志或輸出結(jié)果加說明標(biāo)簽L O G = 將 S A S 日志輸出到外部永久文件或 S A S 目錄冊中L O G = a nd P R I N T = 將 S A S 日志和運(yùn)行結(jié)果輸出到一個文件中N E W 替換原輸出文件P R I N T = 將運(yùn)行結(jié)果輸出到外部永久文件或 S A S 目錄冊中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。 添加觀測 利用 SAS的 APPEND過程可以將一個 SAS數(shù)據(jù)集的觀測添加到另一個 SAS數(shù)據(jù)集的后面 。 APPEND過程句法 PROC APPEND BASE=SASdataset DATA=SASdataset FORCE 。 APPEND過程中只需要一個語句 。 選項(xiàng)說明: BASE=| OUT= 規(guī)定基本數(shù)據(jù)集的名子 DATA=| NEW= 規(guī)定要添加在基本數(shù)據(jù)集后面的數(shù)據(jù)集 名,缺省時使用最近創(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語句來限制 DATA=的數(shù)據(jù)集中只有滿足條件的觀測被加到 BASE=的數(shù)據(jù)集中 。 數(shù)據(jù)庫復(fù)制 ? 利用 SAS的 COPY過程可以復(fù)制整個 SAS數(shù)據(jù)庫或其中的數(shù)據(jù)庫成員。 COPY過程句法 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。 子語句說明: ? Select規(guī)定要拷貝數(shù)據(jù)庫 IN=中的成員; ? Exclude規(guī)定不拷貝數(shù)據(jù)庫 IN=中的成員。 PROC COPY語句選項(xiàng) 選項(xiàng)說明: I N | I N L I B | I N D D = 規(guī)定被拷貝的 S A S 數(shù)據(jù)庫,此項(xiàng)必須規(guī)定O U T | O U T L I B | O U T D D = 規(guī)定拷貝數(shù)據(jù)庫,此項(xiàng)必須規(guī)定M E M T Y P E | M T Y P E | M T = 規(guī)定被拷貝或移動成員的類型M O V E 移走 I N = 數(shù)據(jù)庫中的相應(yīng)成員A L T E R = 移 動 一 個 可 改 變 保 護(hù) 的 成 員 時 , 要 寫 上 原 來 的 改 變訪問口令I(lǐng) N D E X = Y E S / N O 規(guī) 定 拷 貝 數(shù) 據(jù) 集 時 是 否 拷 貝 該 數(shù) 據(jù) 集 的 索 引 。 缺 省時 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)用舉例 例 兩個 SAS邏輯庫之間復(fù)制數(shù)據(jù)集和目錄冊。 proc copy in=lib1 out=lib2 MTYPE=(data catalog)。 run。 例 將邏輯庫 LIB1的所有 SAS文件移動到 LIB2中。 proc copy in=lib1 out=lib2 move。 run。 例 選擇以 DAT開頭的所有文件 。 data (alter=zsw)。 var=39。move39。 run。 proc copy in=ResDat out=work move。 select dat: (alter=zsw)。 run。