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

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

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

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

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

4、t y;run;例中,用PUT函數得到正確結果,即字符型2557898.data;x=2557898;y=put(x, $3.);put y;run;例中,Y的結果為3E6.第8頁,共43頁,2022年,5月20日,5點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點42分,星期二永久性與臨時性聯系 DATA步規(guī)定的輸入格式是永久聯系的; PROC步規(guī)定的輸入格式是臨時聯系的。 第10頁,共43頁,2022年,5月20日,5點42分,星期二輸入格式類型 數值輸入格式; 字符輸入格式; 日期時間輸入格式; 豎式二進制數輸入格式; 使用FORMAT過程自定義的輸入格式。 第11頁,共43頁,2022年,5月20日,5點42分,星期二w.d輸入格式 讀入標準數值數據。例13.6 INPUT語句對變量使用列指針控制和w.d的輸入格式。INPUT X 8.2;INPUT X 1-10 .2;W.D輸入格式把一個點(.)作為缺失值。用W.D輸入格式時,數值域尾部的

6、空白不表示0,用BZ.輸入格式可以把尾部空白讀為0.數值變量輸入格式第12頁,共43頁,2022年,5月20日,5點42分,星期二COMMAw.d 輸入格式 COMMAw.d輸入格式讀入包含字符的數值。數值數據內可能包含的字符有: 逗號; 空格; $; %; 破折號; 圓括號等。例13.8 讀入帶千分號的數據。data a;input x comma12.2;cards;12,522.2315;run;第13頁,共43頁,2022年,5月20日,5點42分,星期二例13.10 數值變量輸入格式應用舉例。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;結果顯示x=12345.1234.結果顯示x=12345.12.第14頁,共43頁,2022年,5月20日,5點42分,星期二$w.輸入格式 讀入標準字符數據。在讀入字符值之前,$w.輸入格式清除字符值開頭的空格。$w.輸入格式把一個點(.)轉換為空格,因為它把一個點看作缺失值。例13.11 讀入數據時,清除數據開頭空格并將(.)轉換為缺失

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

9、時,INFORMAT或ATTRIB語句中不能使用$CHAR.輸入格式,因為SAS把空格看作數據行中數值間的分隔符。輸出結果:xyz.uvw第16頁,共43頁,2022年,5月20日,5點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點42分,星期二輸出格式 輸出格式是SAS系統(tǒng)用來輸出數據值的一個指令。 輸出格式形式 FOR

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

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

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

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

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

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

16、最常用的字符數據輸出格,w值給出輸出字符值的列數。例13.24 $w.和列輸出格式產生同樣效果。data ;name=ABC;put 10 name $3.;put name $10-12;run;例中,都輸出值為ABC.字符變量輸出格式 第31頁,共43頁,2022年,5月20日,5點42分,星期二日期時間存貯方式 SAS日期值存貯方式SAS系統(tǒng)存貯日期值為1960年1月1日到這個日期之間的天數。日期存貯方式舉例第32頁,共43頁,2022年,5月20日,5點42分,星期二例13.25 表中天數的計算程序。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點42分,星期二SAS日期時間值存貯方式 SAS存貯時間值從0時開始以秒記數。日期時間值存貯方式舉例第34頁,共43頁,2022年,5月20日,5點42分,星期二例13.26 表中秒數的計算程序。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點42分,星期二日期時間輸入格式 輸入格式描述例子寬度范圍缺省范圍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點42分,星期二應用舉例 例13 27 使用SAS日期時間的輸入格式。data a;input date mmddyy10.;cards;10-01-200210/01/2002;run;第37頁,共43頁,2022年,5月20日,5點42分,星期二日期時間輸出格式 假定日期時間值為2003年3月27日12點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點42分,星期二例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 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;顯示結果:19SEP0215602156022001-10-1212OCT2001第39頁,共43頁,2022年,5月20日,5點42分,星期二data;x=13807;

溫馨提示

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

評論

0/150

提交評論