【正文】
026 .3。 例 控制輸出的列位置。 overprint 39。 run。 put name 18 12 sex。 set 。 1 5 9 0 3 7 10 2 8 。 data _null_ 。_39。 PUT variable= $ startcolumn endcolumn.decimalplaces | 。characterstring39。 PUTpointercontrol variable format. | 。 簡單方式: PUT specification(s) | 。 A 。 或 DATALINES4; [數(shù)據(jù)行 ] ;;;; 例 數(shù)據(jù)行中含有分號時用 CARDS4語句 。 cards。 數(shù)據(jù)行之前用 CARDS語句或 DATALINES語句。 NOTE: 數(shù)據(jù)集 有 245 個觀測和 62 個變量。 /* year為函數(shù)名 */ 88 else if year (date)=1999 then output year1999。 run。 set 。 set _last_。 84 run。 80 data _null_。 x=exp(5)。*/ 系統(tǒng)自動為數(shù)據(jù)集賦名: data1, data2,… , datan. _null_ 一般和 PUT語句一起用 。 /*規(guī)定數(shù)據(jù)集 new標(biāo)簽名為 ”股本變動歷史 ” */ data new (rename=(var1=u var2=v))。 例 數(shù)據(jù)集選項舉例 。 /*創(chuàng)建臨時數(shù)據(jù)集 a */ data ResDat .a。 選項說明 這里只給出常用選項的說明,其它選項說明可以從 SAS系統(tǒng)幫助中查找。 REDIRECTREDIRECT INPUT | OUTPUT oldname1 = newname1 ... oldnamen = newnamen。 DATA viewname datasetname1 (datasetoptions1) . . .datasetnamen (datasetoptionsn) / VIEW=viewname ( passwordoption SOURCE=sourceoption)。 DATA datasetname / PGM=programname (passwordoptionSOURCE=sourceoption)。 EXECUTE。 d a t a s e t n a me 規(guī)定要創(chuàng)建的 S A S 數(shù)據(jù)集D a t a s e t o p t i o n s 數(shù)據(jù)集選項V I E W = 創(chuàng)建 D A T A 步數(shù)據(jù)視窗文件P G M = 存貯被編輯程序例 規(guī)定要創(chuàng)建的 SAS數(shù)據(jù)集 。 /*創(chuàng)建永久數(shù)據(jù)集 */ data data1 data2。 data new (drop=var1)。 /*將數(shù)據(jù)集 new中變量 var1和var2更名為 u和 v*/ data book(index=(author subject))。 由 PUT輸出結(jié)果 , 只輸出到 LOG窗口 ,不會產(chǎn)生 SAS數(shù)據(jù)集 。 y=log(10)。 81 x=exp(5)。 x= y= NOTE: “DATA 語句”所用時間(總處理時間) : 實際時間 秒 CPU 時間 秒 _last_ _last_是 SAS系統(tǒng)的一個自動變量 , 取值為最新創(chuàng)建的 SAS數(shù)據(jù)集名 。 run。 if year (date)=1998 then output year1998。 例中,根據(jù)條件產(chǎn)生三個觀測子集,名字分別為 YEAR1998, YEAR1999和 YEAR2020. 85 data year1998 year1999 year2020。 89 else if year (date)=2020 then output year2020。 NOTE: 數(shù)據(jù)集 有 237 個觀測和 62 個變量。 語句格式: CARDS; 或 DATALINES; [數(shù)據(jù)行 ] 例 數(shù)據(jù)行之前用 CARDS語句。 16 20 First 。 data。 B ( 。 PUT pointercontrolspecification...specification | 。 PUT pointercontrol (variablelist) (formatlist) | 。 | 。 語句格式 例 用 PUT語句產(chǎn)生的輸出結(jié)果及其比較。 /*在 log窗口輸出 132個下劃線 _*/ put 100*39。 input x y z。 run。 by sex。 if then put // 39。 Alice F Barbara F Carol F Jane F Ja F Joyce F Judy F Louise F Mary F This is the last of F Alfred M Henry M James M Jeffrey M John M Philip M Robert M Ronald M Thomas M William M This is the last of M 第一頁 第二頁 輸出窗口顯示: data。39。 data a。 run。 | 。 data a。 put (_all_) (3*)。 PUT pointercontrol (variablelist) (formatlist) | 。 $10. bldg $ room。 run。 /*變量 name有空格 */ 55 put name 20 (bldg room) ($1., 3.)。 60 run。 a=39。 GU BEIJING J 125 ROBERT US C 233 。 62 input name amp。 64 put name 20 bldg $ a $ room。 69 run。 選項說明 BY語句 概念 V a r i a b l e 規(guī)定分類排序或加索引的變量D e s c e n d i n g 規(guī)定按降序排序,缺省為按升序排G r o u p f o r ma t 規(guī)定用格式化值分組N o t s o r t e d 未排序BY 變量 BY 語句規(guī)定的變量BY 值 BY 變量的值或格式化值BY 組 同一 BY 值所有觀測構(gòu)成的組 SAS 系 統(tǒng)對每個 BY 組創(chuàng)建 兩個自動變 量: 和 , 用來標(biāo)識每個 BY組的第一個和最后一個觀測 。 set 。 by year month。 if 。 一個 DATA步中可以有多個 SET語句,一個 SET語句中可以有任個 SAS數(shù)據(jù)集。文件結(jié)束時取值 1,其它觀測取 0。 obs=_n_。 /*讀入數(shù)據(jù)集 a中的第 3,5,7,4觀測 */ if _error_=1 then abort。 /*使用選項 point=時,經(jīng)常要用 stop語句來終止 data步的執(zhí)行 */ proc print。 set one(in=one) two(in=two)。 數(shù)據(jù)集 a: x y Z in1 in2 1 Groucho 1 0 3 Harpo 1 0 5 Kart 1 0 2 Chico 0 1 4 Zeppo 0 1 規(guī)定臨時變量選項 NOBS=: data a。 end。 a=nobs。 如何找數(shù)據(jù)集的最后一個觀測值: data a。 找數(shù)據(jù)集最后一個觀測值更簡單的方法: data a。 輸出數(shù)據(jù)集的最后一個觀測值: data a。 /*將臨時變量 lastobs的值賦給 X*/ put 39。 保留部分變量: data a 。 set 。 keep date clpr。 data oppr(keep=date oppr) clpr(keep=date clpr)。 set 。 set 。 set 。 data qttn。 data a。 SAS系統(tǒng)合并觀測的方式依賴于 BY語句的使用。 run。 by date。 Data stkcd。 Data Iissulst1。 FILE語句 FILE 語句用于規(guī)定將要輸出的外部文件 。 語句格式 FILE filespecification options hostoptions。缺省情況下為空格。 DSD 規(guī)定一個數(shù)據(jù)可以包含分隔符,要用引號括住。 file print filename=xxx。 /* 數(shù)據(jù)集 a中有一個變量 name和一個觀測值print */ run。 filename=xxx。hello39。 da