變量輸入輸出格式_第1頁
變量輸入輸出格式_第2頁
變量輸入輸出格式_第3頁
變量輸入輸出格式_第4頁
變量輸入輸出格式_第5頁
已閱讀5頁,還剩38頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、變量輸入輸出格式第1頁,共43頁,2022年,5月20日,5點(diǎn)42分,星期二本章內(nèi)容包括: 輸入格式; 輸出格式; SAS日期時(shí)間存貯方式; 日期時(shí)間輸入格式; 日期時(shí)間輸出格式; 缺失值處理。第2頁,共43頁,2022年,5月20日,5點(diǎn)42分,星期二輸入格式 輸入格式是SAS系統(tǒng)用來讀入數(shù)據(jù)值的一個(gè)指令。輸入格式形式 INFORMAT .選項(xiàng)說明:通用規(guī)則: 所有輸入格式必須包含一個(gè)點(diǎn)(.)作為名字的一部分; 對(duì)于省略W和D值的輸入格式,使用系統(tǒng)缺省值。第3頁,共43頁,2022年,5月20日,5點(diǎn)42分,星期二輸入格式使用方法 INPUT語句; INPUT函數(shù); DATA步中用INFOR

2、MAT或ATTRIB語句; PROC步中用INFORMAT或ATTRIB語句。第4頁,共43頁,2022年,5月20日,5點(diǎn)42分,星期二INPUT語句 例13.1 列格式輸入。input 6 date ddmmyy10. +1 stocd $ 8. oppr 8.2;例中,從第6列開始以DDMMYY10.格式讀入變量DATE, 第7列開始以長(zhǎng)度為8的字符格式讀入變量STOCD,然后以數(shù)值格式8.2讀入變量OPPR。第5頁,共43頁,2022年,5月20日,5點(diǎn)42分,星期二INPUT函數(shù) 例13.2 字符轉(zhuǎn)換數(shù)值。data;x=98.6;y=input(x, 4.);put x= y=;ru

3、n;例中,INPUT函數(shù)和w.d輸入格式將X的字符值轉(zhuǎn)換為一個(gè)數(shù)值Y.INPUT函數(shù)對(duì)于數(shù)據(jù)的轉(zhuǎn)換是很有用的,當(dāng)然,有更簡(jiǎn)單的方法將字符值轉(zhuǎn)換為數(shù)值。data;x=98.6;y=x-0;put x= y=;run; 第6頁,共43頁,2022年,5月20日,5點(diǎn)42分,星期二例13.3 數(shù)值轉(zhuǎn)換為字符時(shí)會(huì)產(chǎn)生不正確結(jié)果。data;x=2557898;y=input(x,$8.);put y;run;例中,產(chǎn)生的結(jié)果為255, 不正確。第7頁,共43頁,2022年,5月20日,5點(diǎn)42分,星期二例13.4 PUT函數(shù)將數(shù)值轉(zhuǎn)換為字符。data;x=2557898;y=put(x, $8.);pu

4、t y;run;例中,用PUT函數(shù)得到正確結(jié)果,即字符型2557898.data;x=2557898;y=put(x, $3.);put y;run;例中,Y的結(jié)果為3E6.第8頁,共43頁,2022年,5月20日,5點(diǎn)42分,星期二在DATA步中用INFORMAT語句或ATTRIB語句 例13.5 DATA步中用INFORMAT語句。data a;input x;informat x comma12.4;cards;12,345.123422,345.1234;run;例中,最好就是只用INFORMAT語句,不要用ATTRIB,這樣可以少記些東西。 第9頁,共43頁,2022年,5月20日,

5、5點(diǎn)42分,星期二永久性與臨時(shí)性聯(lián)系 DATA步規(guī)定的輸入格式是永久聯(lián)系的; PROC步規(guī)定的輸入格式是臨時(shí)聯(lián)系的。 第10頁,共43頁,2022年,5月20日,5點(diǎn)42分,星期二輸入格式類型 數(shù)值輸入格式; 字符輸入格式; 日期時(shí)間輸入格式; 豎式二進(jìn)制數(shù)輸入格式; 使用FORMAT過程自定義的輸入格式。 第11頁,共43頁,2022年,5月20日,5點(diǎn)42分,星期二w.d輸入格式 讀入標(biāo)準(zhǔn)數(shù)值數(shù)據(jù)。例13.6 INPUT語句對(duì)變量使用列指針控制和w.d的輸入格式。INPUT X 8.2;INPUT X 1-10 .2;W.D輸入格式把一個(gè)點(diǎn)(.)作為缺失值。用W.D輸入格式時(shí),數(shù)值域尾部的

6、空白不表示0,用BZ.輸入格式可以把尾部空白讀為0.數(shù)值變量輸入格式第12頁,共43頁,2022年,5月20日,5點(diǎn)42分,星期二COMMAw.d 輸入格式 COMMAw.d輸入格式讀入包含字符的數(shù)值。數(shù)值數(shù)據(jù)內(nèi)可能包含的字符有: 逗號(hào); 空格; $; %; 破折號(hào); 圓括號(hào)等。例13.8 讀入帶千分號(hào)的數(shù)據(jù)。data a;input x comma12.2;cards;12,522.2315;run;第13頁,共43頁,2022年,5月20日,5點(diǎn)42分,星期二例13.10 數(shù)值變量輸入格式應(yīng)用舉例。data ;informat x 8.2;x=12345.1234;put x=; run;

7、data a;x=12345.1234;informat x 12.4;format x 8.2;put x=;run;data a;input x;informat x comma12.4;cards;12,345.123422,345.1234;run;結(jié)果顯示x=12345.1234.結(jié)果顯示x=12345.12.第14頁,共43頁,2022年,5月20日,5點(diǎn)42分,星期二$w.輸入格式 讀入標(biāo)準(zhǔn)字符數(shù)據(jù)。在讀入字符值之前,$w.輸入格式清除字符值開頭的空格。$w.輸入格式把一個(gè)點(diǎn)(.)轉(zhuǎn)換為空格,因?yàn)樗岩粋€(gè)點(diǎn)看作缺失值。例13.11 讀入數(shù)據(jù)時(shí),清除數(shù)據(jù)開頭空格并將(.)轉(zhuǎn)換為缺失

8、值。data;input name $5.;cards;xyz.uvw;options nocenter;proc print noobs;run;輸出結(jié)果:xyzuvw字符變量輸入格式 第15頁,共43頁,2022年,5月20日,5點(diǎn)42分,星期二$CHARw輸入格式 讀含有空格的字符數(shù)據(jù)。$CHARw.輸入格式除了不清除字符值開頭的空作格外,它等同于標(biāo)準(zhǔn)的$w.輸入格式。例13.12 保留開頭和結(jié)尾的空格。data;input name $char10.;cards;xyz .uvw;options nocenter;proc print noobs;run;INPUT語句采取自由格式輸入

9、時(shí),INFORMAT或ATTRIB語句中不能使用$CHAR.輸入格式,因?yàn)镾AS把空格看作數(shù)據(jù)行中數(shù)值間的分隔符。輸出結(jié)果:xyz.uvw第16頁,共43頁,2022年,5月20日,5點(diǎn)42分,星期二例13.13 不能放放在一起使用的語句。informat x $char12.;input x y z;例13.14直接賦值為字符型變量。 data a; x1=st92;x2=st92;informat x $8. ;x3=12,345.1234; run;第17頁,共43頁,2022年,5月20日,5點(diǎn)42分,星期二輸出格式 輸出格式是SAS系統(tǒng)用來輸出數(shù)據(jù)值的一個(gè)指令。 輸出格式形式 FOR

10、MAT .選項(xiàng)說明: 第18頁,共43頁,2022年,5月20日,5點(diǎn)42分,星期二通用規(guī)則: 所有輸出格式必須包含一個(gè)點(diǎn)(.)作為名字的一部分; 省略W和D的值時(shí),使用系統(tǒng)的缺省值; 無論怎樣規(guī)定輸出格式中的小數(shù)位,輸出格式都不會(huì)影響存貯的數(shù)據(jù)值; 規(guī)定的輸出格式寬度太窄小時(shí),對(duì)字符格式截去右邊的字符,對(duì)數(shù)值格式轉(zhuǎn)換為BESTw.的格式; 使用一個(gè)不協(xié)調(diào)的輸出格式時(shí),SAS系統(tǒng)首先試著使用其它類型的類似格式。如果行不通,將輸出一個(gè)錯(cuò)誤信息在SAS日志。第19頁,共43頁,2022年,5月20日,5點(diǎn)42分,星期二輸出格式使用方法 PUT語句; PUT函數(shù); DATA步中用FORMAT或ATT

11、RIB語句; PROC步中用FORMAT或ATTRIB語句。第20頁,共43頁,2022年,5月20日,5點(diǎn)42分,星期二PUT語句 例13.15 PUT語句中使用輸出格式。data;x=1145.32;put x dollar10.2;run;結(jié)果為$1,145.32。輸出格式帶千分號(hào)和美元號(hào)。第21頁,共43頁,2022年,5月20日,5點(diǎn)42分,星期二PUT函數(shù) PUT函數(shù)對(duì)于將數(shù)值轉(zhuǎn)換為字符,或者改變變量的字符輸出格式是很有用的。例13.16 PUT函數(shù)中使用輸入格式。data;cc=16;cchex=put(cc,hex3.);put cc hex3.;run;結(jié)果為010.例中,轉(zhuǎn)

12、換數(shù)值變量cc的值為三個(gè)字符的十六進(jìn)制表達(dá)式。data;cc=16;cc=put(cc,3.);run;例中,將數(shù)值CC轉(zhuǎn)換為字符值。第22頁,共43頁,2022年,5月20日,5點(diǎn)42分,星期二DATA步中用FORMAT或ATTRIB語句 例13.17 DATA步中用FORMAT或ATTRIB語句。format sales1-sales12 comma10.2;例中,F(xiàn)ORMAT語句對(duì)變量sales1至sales12規(guī)定輸出格式COMMAw.d.attrib sales1-sales12 format=comma10.2;例中,ATTRIB語句對(duì)變量sales1至sales12規(guī)定輸出格式C

13、OMMAw.d.第23頁,共43頁,2022年,5月20日,5點(diǎn)42分,星期二輸出格式類型 數(shù)值輸出格式; 字符輸出格式; 日期時(shí)間輸出格式; 使用FORMAT過程創(chuàng)建的自定義輸出格式。第24頁,共43頁,2022年,5月20日,5點(diǎn)42分,星期二第25頁,共43頁,2022年,5月20日,5點(diǎn)42分,星期二w.d輸出格式 輸出標(biāo)準(zhǔn)數(shù)值數(shù)據(jù)。對(duì)超出輸出格式寬度的數(shù)值進(jìn)行四舍五入。數(shù)值過大時(shí),使用BESTw.輸出。例13.18 w.d輸出格式應(yīng)用。data a; x=23.45; put x 6.3;run;結(jié)果是23.450。例13.19 使用列輸出法等價(jià)于使用指針控制和w.d的格式。put

14、x 1-8 .2;put 1 x 8.2;例中,兩個(gè)語句等價(jià)。數(shù)值變量輸出格式第26頁,共43頁,2022年,5月20日,5點(diǎn)42分,星期二BESTw.格式 沒有對(duì)變量規(guī)定輸出格式時(shí),使用BEST.的格式。SAS在規(guī)定的寬度列數(shù)中選擇能夠給出該值最多信息的表示法作為輸出格式。SAS仍存貯原來的完整數(shù)值。第27頁,共43頁,2022年,5月20日,5點(diǎn)42分,星期二例13.20 用不同的BESTw.形式輸出時(shí),顯示結(jié)果不一樣,但在SAS存貯的都是原來的完整數(shù)值。data;x=12570000;put 10 x best6.;run;輸出值為1.26E6。正確地輸出這個(gè)值需要8列,使用E表示法把這

15、個(gè)值壓縮為6列.data;x=12570000;put 10 x best3.;run; 輸出值為1E6.data;x=12570000;put 10 x best2.;run; 輸出值為*.第28頁,共43頁,2022年,5月20日,5點(diǎn)42分,星期二Ew.輸出格式 例13.22 用科學(xué)記數(shù)法表示輸出數(shù)值。data;x=1257;put 10 x e10.;run;輸出值為1.257E+03,共占9列。第29頁,共43頁,2022年,5月20日,5點(diǎn)42分,星期二輸入輸出控制流程 輸入-存儲(chǔ)-輸出控制流程 第30頁,共43頁,2022年,5月20日,5點(diǎn)42分,星期二$w.輸出格式 $w.是

16、最常用的字符數(shù)據(jù)輸出格,w值給出輸出字符值的列數(shù)。例13.24 $w.和列輸出格式產(chǎn)生同樣效果。data ;name=ABC;put 10 name $3.;put name $10-12;run;例中,都輸出值為ABC.字符變量輸出格式 第31頁,共43頁,2022年,5月20日,5點(diǎn)42分,星期二日期時(shí)間存貯方式 SAS日期值存貯方式SAS系統(tǒng)存貯日期值為1960年1月1日到這個(gè)日期之間的天數(shù)。日期存貯方式舉例第32頁,共43頁,2022年,5月20日,5點(diǎn)42分,星期二例13.25 表中天數(shù)的計(jì)算程序。data;date=mdy(1,1,1960);put date 8.;date=md

17、y(3,3,1962);put date 8.;date=mdy(8,4,1985);put date 8.;date=mdy(10,1,2002);put date 8.;date=mdy(7,4,1776);put date 8.;run;第33頁,共43頁,2022年,5月20日,5點(diǎn)42分,星期二SAS日期時(shí)間值存貯方式 SAS存貯時(shí)間值從0時(shí)開始以秒記數(shù)。日期時(shí)間值存貯方式舉例第34頁,共43頁,2022年,5月20日,5點(diǎn)42分,星期二例13.26 表中秒數(shù)的計(jì)算程序。data;hms=hms (21,50,51); put hms=;x=21*60*60+50*60+51;put

18、 x=; date=mdy(10,1,2002);put date=;dhms=dhms (date,21,50,51); put dhms=;y=date*24*3600+x;put y=;run;第35頁,共43頁,2022年,5月20日,5點(diǎn)42分,星期二日期時(shí)間輸入格式 輸入格式描述例子寬度范圍缺省范圍datew.Ddmmyy1jan200301jan031-jan-20037-327datetimew.Ddmmyy hh:mm:ss.ss01jan03:8:56:10.201jan2003/8:56:1013-4018yymmddw.03 01 0103/01/01030101200

19、301016-326第36頁,共43頁,2022年,5月20日,5點(diǎn)42分,星期二應(yīng)用舉例 例13 27 使用SAS日期時(shí)間的輸入格式。data a;input date mmddyy10.;cards;10-01-200210/01/2002;run;第37頁,共43頁,2022年,5月20日,5點(diǎn)42分,星期二日期時(shí)間輸出格式 假定日期時(shí)間值為2003年3月27日12點(diǎn)5分5.49秒, 星期四,為2003年的第86天,第1季度,所在周的第5天。 輸出格式描述例子寬度范圍缺省范圍datew.Ddmmmyy27MAR200327MAR0327MAR5-97datetimew.dDdmmyy:H

20、h:Mm:Ss.Ss27MAR03:12:05:05.4927MAR03:127-4016yymmddw.Yymmdd2003-03-2703-03-27032-108第38頁,共43頁,2022年,5月20日,5點(diǎn)42分,星期二例13.28 使用SAS日期時(shí)間的輸出格式。data a;input date mmddyy10.;format date yymmdd10.;put date=;cards;10-01-200210/01/2002;run;data a;input date mmddyy10.;format date 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-1212OCT2001第39頁,共43頁,2022年,5月20日,5點(diǎn)42分,星期二data;x=13807;

溫馨提示

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

評(píng)論

0/150

提交評(píng)論