SAS (統(tǒng)計分析軟件)課件:第13章 變量輸入輸出格式_第1頁
SAS (統(tǒng)計分析軟件)課件:第13章 變量輸入輸出格式_第2頁
SAS (統(tǒng)計分析軟件)課件:第13章 變量輸入輸出格式_第3頁
SAS (統(tǒng)計分析軟件)課件:第13章 變量輸入輸出格式_第4頁
SAS (統(tǒng)計分析軟件)課件:第13章 變量輸入輸出格式_第5頁
已閱讀5頁,還剩38頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、第13章 變量輸入輸出格式本章內(nèi)容包括: 輸入格式; 輸出格式; SAS日期時間存貯方式; 日期時間輸入格式; 日期時間輸出格式; 缺失值處理。輸入格式 輸入格式是SAS系統(tǒng)用來讀入數(shù)據(jù)值的一個指令。輸入格式形式 INFORMAT .選項說明:通用規(guī)則: 所有輸入格式必須包含一個點(.)作為名字的一部分; 對于省略W和D值的輸入格式,使用系統(tǒng)缺省值。輸入格式使用方法 INPUT語句; INPUT函數(shù); DATA步中用INFORMAT或ATTRIB語句; PROC步中用INFORMAT或ATTRIB語句。INPUT語句 例13.1 列格式輸入。input 6 date ddmmyy10. +1

2、stocd $ 8. oppr 8.2;例中,從第6列開始以DDMMYY10.格式讀入變量DATE, 第7列開始以長度為8的字符格式讀入變量STOCD,然后以數(shù)值格式8.2讀入變量OPPR。INPUT函數(shù) 例13.2 字符轉(zhuǎn)換數(shù)值。data;x=98.6;y=input(x, 4.);put x= y=;run;例中,INPUT函數(shù)和w.d輸入格式將X的字符值轉(zhuǎn)換為一個數(shù)值Y.INPUT函數(shù)對于數(shù)據(jù)的轉(zhuǎn)換是很有用的,當(dāng)然,有更簡單的方法將字符值轉(zhuǎn)換為數(shù)值。data;x=98.6;y=x-0;put x= y=;run; 例13.3 數(shù)值轉(zhuǎn)換為字符時會產(chǎn)生不正確結(jié)果。data;x=2557898

3、;y=input(x,$8.);put y;run;例中,產(chǎn)生的結(jié)果為255, 不正確。例13.4 PUT函數(shù)將數(shù)值轉(zhuǎn)換為字符。data;x=2557898;y=put(x, $8.);put y;run;例中,用PUT函數(shù)得到正確結(jié)果,即字符型2557898.data;x=2557898;y=put(x, $3.);put y;run;例中,Y的結(jié)果為3E6.在DATA步中用INFORMAT語句或ATTRIB語句 例13.5 DATA步中用INFORMAT語句。data a;input x;informat x comma12.4;cards;12,345.123422,345.1234;r

4、un;例中,最好就是只用INFORMAT語句,不要用ATTRIB,這樣可以少記些東西。 永久性與臨時性聯(lián)系 DATA步規(guī)定的輸入格式是永久聯(lián)系的; PROC步規(guī)定的輸入格式是臨時聯(lián)系的。 輸入格式類型 數(shù)值輸入格式; 字符輸入格式; 日期時間輸入格式; 豎式二進制數(shù)輸入格式; 使用FORMAT過程自定義的輸入格式。 w.d輸入格式 讀入標(biāo)準(zhǔn)數(shù)值數(shù)據(jù)。例13.6 INPUT語句對變量使用列指針控制和w.d的輸入格式。INPUT X 8.2;INPUT X 1-10 .2;W.D輸入格式把一個點(.)作為缺失值。用W.D輸入格式時,數(shù)值域尾部的空白不表示0,用BZ.輸入格式可以把尾部空白讀為0.數(shù)

5、值變量輸入格式COMMAw.d 輸入格式 COMMAw.d輸入格式讀入包含字符的數(shù)值。數(shù)值數(shù)據(jù)內(nèi)可能包含的字符有: 逗號; 空格; $; %; 破折號; 圓括號等。例13.8 讀入帶千分號的數(shù)據(jù)。data a;input x comma12.2;cards;12,522.2315;run;例13.10 數(shù)值變量輸入格式應(yīng)用舉例。data ;informat x 8.2;x=12345.1234;put x=; run;data a;x=12345.1234;informat x 12.4;format x 8.2;put x=;run;data a;input x;informat x com

6、ma12.4;cards;12,345.123422,345.1234;run;結(jié)果顯示x=12345.1234.結(jié)果顯示x=12345.12.$w.輸入格式 讀入標(biāo)準(zhǔn)字符數(shù)據(jù)。在讀入字符值之前,$w.輸入格式清除字符值開頭的空格。$w.輸入格式把一個點(.)轉(zhuǎn)換為空格,因為它把一個點看作缺失值。例13.11 讀入數(shù)據(jù)時,清除數(shù)據(jù)開頭空格并將(.)轉(zhuǎn)換為缺失值。data;input name $5.;cards;xyz.uvw;options nocenter;proc print noobs;run;輸出結(jié)果:xyzuvw字符變量輸入格式 $CHARw輸入格式 讀含有空格的字符數(shù)據(jù)。$CHA

7、Rw.輸入格式除了不清除字符值開頭的空作格外,它等同于標(biāo)準(zhǔn)的$w.輸入格式。例13.12 保留開頭和結(jié)尾的空格。data;input name $char10.;cards;xyz .uvw;options nocenter;proc print noobs;run;INPUT語句采取自由格式輸入時,INFORMAT或ATTRIB語句中不能使用$CHAR.輸入格式,因為SAS把空格看作數(shù)據(jù)行中數(shù)值間的分隔符。輸出結(jié)果:xyz.uvw例13.13 不能放放在一起使用的語句。informat x $char12.;input x y z;例13.14直接賦值為字符型變量。 data a; x1=s

8、t92;x2=st92;informat x $8. ;x3=12,345.1234; run;輸出格式 輸出格式是SAS系統(tǒng)用來輸出數(shù)據(jù)值的一個指令。 輸出格式形式 FORMAT .選項說明: 通用規(guī)則: 所有輸出格式必須包含一個點(.)作為名字的一部分; 省略W和D的值時,使用系統(tǒng)的缺省值; 無論怎樣規(guī)定輸出格式中的小數(shù)位,輸出格式都不會影響存貯的數(shù)據(jù)值; 規(guī)定的輸出格式寬度太窄小時,對字符格式截去右邊的字符,對數(shù)值格式轉(zhuǎn)換為BESTw.的格式; 使用一個不協(xié)調(diào)的輸出格式時,SAS系統(tǒng)首先試著使用其它類型的類似格式。如果行不通,將輸出一個錯誤信息在SAS日志。輸出格式使用方法 PUT語句;

9、 PUT函數(shù); DATA步中用FORMAT或ATTRIB語句; PROC步中用FORMAT或ATTRIB語句。PUT語句 例13.15 PUT語句中使用輸出格式。data;x=1145.32;put x dollar10.2;run;結(jié)果為$1,145.32。輸出格式帶千分號和美元號。PUT函數(shù) PUT函數(shù)對于將數(shù)值轉(zhuǎn)換為字符,或者改變變量的字符輸出格式是很有用的。例13.16 PUT函數(shù)中使用輸入格式。data;cc=16;cchex=put(cc,hex3.);put cc hex3.;run;結(jié)果為010.例中,轉(zhuǎn)換數(shù)值變量cc的值為三個字符的十六進制表達式。data;cc=16;cc=

10、put(cc,3.);run;例中,將數(shù)值CC轉(zhuǎn)換為字符值。DATA步中用FORMAT或ATTRIB語句 例13.17 DATA步中用FORMAT或ATTRIB語句。format sales1-sales12 comma10.2;例中,F(xiàn)ORMAT語句對變量sales1至sales12規(guī)定輸出格式COMMAw.d.attrib sales1-sales12 format=comma10.2;例中,ATTRIB語句對變量sales1至sales12規(guī)定輸出格式COMMAw.d.輸出格式類型 數(shù)值輸出格式; 字符輸出格式; 日期時間輸出格式; 使用FORMAT過程創(chuàng)建的自定義輸出格式。w.d輸出格

11、式 輸出標(biāo)準(zhǔn)數(shù)值數(shù)據(jù)。對超出輸出格式寬度的數(shù)值進行四舍五入。數(shù)值過大時,使用BESTw.輸出。例13.18 w.d輸出格式應(yīng)用。data a; x=23.45; put x 6.3;run;結(jié)果是23.450。例13.19 使用列輸出法等價于使用指針控制和w.d的格式。put x 1-8 .2;put 1 x 8.2;例中,兩個語句等價。數(shù)值變量輸出格式BESTw.格式 沒有對變量規(guī)定輸出格式時,使用BEST.的格式。SAS在規(guī)定的寬度列數(shù)中選擇能夠給出該值最多信息的表示法作為輸出格式。SAS仍存貯原來的完整數(shù)值。例13.20 用不同的BESTw.形式輸出時,顯示結(jié)果不一樣,但在SAS存貯的都

12、是原來的完整數(shù)值。data;x=12570000;put 10 x best6.;run;輸出值為1.26E6。正確地輸出這個值需要8列,使用E表示法把這個值壓縮為6列.data;x=12570000;put 10 x best3.;run; 輸出值為1E6.data;x=12570000;put 10 x best2.;run; 輸出值為*.Ew.輸出格式 例13.22 用科學(xué)記數(shù)法表示輸出數(shù)值。data;x=1257;put 10 x e10.;run;輸出值為1.257E+03,共占9列。輸入輸出控制流程 輸入-存儲-輸出控制流程 $w.輸出格式 $w.是最常用的字符數(shù)據(jù)輸出格,w值給出

13、輸出字符值的列數(shù)。例13.24 $w.和列輸出格式產(chǎn)生同樣效果。data ;name=ABC;put 10 name $3.;put name $10-12;run;例中,都輸出值為ABC.字符變量輸出格式 日期時間存貯方式 SAS日期值存貯方式SAS系統(tǒng)存貯日期值為1960年1月1日到這個日期之間的天數(shù)。日期存貯方式舉例例13.25 表中天數(shù)的計算程序。data;date=mdy(1,1,1960);put date 8.;date=mdy(3,3,1962);put date 8.;date=mdy(8,4,1985);put date 8.;date=mdy(10,1,2002);put

14、 date 8.;date=mdy(7,4,1776);put date 8.;run;SAS日期時間值存貯方式 SAS存貯時間值從0時開始以秒記數(shù)。日期時間值存貯方式舉例例13.26 表中秒數(shù)的計算程序。data;hms=hms (21,50,51); put hms=;x=21*60*60+50*60+51;put x=; date=mdy(10,1,2002);put date=;dhms=dhms (date,21,50,51); put dhms=;y=date*24*3600+x;put y=;run;日期時間輸入格式 輸入格式描述例子寬度范圍缺省范圍datew.Ddmmyy1ja

15、n200301jan031-jan-20037-327datetimew.Ddmmyy hh:mm:ss.ss01jan03:8:56:10.201jan2003/8:56:1013-4018yymmddw.03 01 0103/01/01030101200301016-326應(yīng)用舉例 例13 27 使用SAS日期時間的輸入格式。data a;input date mmddyy10.;cards;10-01-200210/01/2002;run;日期時間輸出格式 假定日期時間值為2003年3月27日12點5分5.49秒, 星期四,為2003年的第86天,第1季度,所在周的第5天。 輸出格式描述

16、例子寬度范圍缺省范圍datew.Ddmmmyy27MAR200327MAR0327MAR5-97datetimew.dDdmmyy:Hh:Mm:Ss.Ss27MAR03:12:05:05.4927MAR03:127-4016yymmddw.Yymmdd2003-03-2703-03-27032-108例13.28 使用SAS日期時間的輸出格式。data a;input date mmddyy10.;format date yymmdd10.;put date=;cards;10-01-200210/01/2002;run;data a;input date mmddyy10.;format d

17、ate date9.;put date=;cards;10-01-200210/01/2002;run;data ;x=put(today(), date7.);put x;y=put(today(),8.0); put y;z=today(); put z;u=put(15260, yymmdd10.);put u;v=put(15260, date9.);put v;run;顯示結(jié)果:19SEP0215602156022001-10-1212OCT2001data;x=13807;format x yymmdd10.;put x=;run;顯示結(jié)果:x=1997-10-20data;date=11oct2001d;put date=;format date yymmdd10.;run;顯示結(jié)果:date=2001-10-11缺失值處理 讀入含缺失值的數(shù)據(jù) 可以表示缺失值的字符有: 空格; 點; MISSING語句規(guī)定的字符。例13.29 空格表示缺失值的數(shù)據(jù)適合列方式讀入。data a;input name $1-5 test1 7-8 test2 10-11;cards;ann 9296susan 84bill 81;run;例中,SUSAN第一

溫馨提示

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

最新文檔

評論

0/150

提交評論