Ch4SAS的輸入輸出格式.ppt_第1頁
Ch4SAS的輸入輸出格式.ppt_第2頁
Ch4SAS的輸入輸出格式.ppt_第3頁
Ch4SAS的輸入輸出格式.ppt_第4頁
Ch4SAS的輸入輸出格式.ppt_第5頁
已閱讀5頁,還剩31頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

SAS格式與格式化輸入,SAS的輸入輸出格式,SAS的變量包含數(shù)值型和字符型變量。 SAS系統(tǒng)對數(shù)值型、字符型和日期時間數(shù)據(jù)提供了許多輸入、輸出格式。 用戶可以用FORMAT過程來定義自己的格式。 什么是格式(Format)? Format is an instruction the SAS System uses to display or write each value of a variable. SAS有輸入格式和輸出格式。輸入格式通常在input語句中使用,輸出格式通常在format語句中使用。,輸入輸出格式,原始數(shù)據(jù)值,SAS 變量的值,格式化的 SAS變量值,Informat dollar10.,Format comma8.,548,231,25JAN2004,16095,01/25/2004,Informat Date9.,Format MMDDYY10.,$548,231,548231,Format,(輸出格式),日期和時間數(shù)據(jù)的存儲,SAS采用數(shù)值存儲日期和時間形式的數(shù)據(jù)。 在默認情況下,SAS系統(tǒng)以0代表1960年1月1日0時。 其它日期在SAS系統(tǒng)中被存儲為與該日期相差的天數(shù)。 例如,1960年1月3日,在系統(tǒng)中存為2。 2004年1月25日,在系統(tǒng)中存為16095。 注意:為了使數(shù)值型變量顯示日期形式,必須使用日期型的輸出格式,同樣地為了以日期形式輸入日期必須使用日期型的輸入格式。,輸入格式,1、數(shù)值型變量 只介紹兩個比較特殊的格式: COMMAw.d :用于數(shù)據(jù)中包含逗號(,)的數(shù)據(jù)形式 DOLLARw.d :用于數(shù)據(jù)前面有美元符($)的數(shù)據(jù)形式 說明: w:寬度,表示數(shù)值域所含的列數(shù)。小數(shù)點占一列。 d:小數(shù)位數(shù)。d可以省略。 例如: 5.2,表示該變量的數(shù)據(jù)占5列,其中后兩位是小數(shù)位。 注意:一定要弄清數(shù)據(jù)占據(jù)的列數(shù),否則極易出錯。,data a; input x comma7. y comma7.; cards; 12,002 34,231 2,210 21,311 ; run; proc print; run;,OUTPUT: Obs x y 1 12002 34231 2 2210 21311,例1. 有如下兩列數(shù)據(jù),數(shù)據(jù)中包有逗號,請建立一個SAS數(shù)據(jù)集,變量為x、y。 12,002 34,231 2,210 21,311,數(shù)字7是怎么來的?,data a; input x comma7.2 y comma7.4; cards; 12,002 34,231 2,210 21,311 ; run; proc print; run;,OUTPUT: Obs x y 1 120.02 3.4231 2 22.10 2.1311,例2. 有如下兩列數(shù)據(jù),其中第一列后兩位數(shù)字為小數(shù),第二列后4位為小數(shù),例如第一個數(shù)據(jù)12,002讀入后應為120.02。請建立一個SAS數(shù)據(jù)集,變量為x、y。 12,002 34,231 2,210 21,311,data a; input x dollar8. y dollar8.; cards; $12,002 $34,231 $2,210 $21,311 ; run; proc print; run;,OUTPUT: Obs x y 1 12002 34231 2 2210 21311,例3. 有如下兩列數(shù)據(jù),數(shù)據(jù)中包有$和逗號,請建立一個SAS數(shù)據(jù)集,變量為x、y。(例如$12,002讀入后應為12002 ) $12,002 $34,231 $2,210 $21,311,data a; input x dollar8.2 y dollar8.4; cards; $12,002 $34,231 $2,210 $21,311 ; run; proc print; run;,OUTPUT: Obs x y 1 120.02 3.4231 2 22.10 2.1311,例4. 有如下兩列數(shù)據(jù),其中第一列后兩位數(shù)字為小數(shù),第二列后4位為小數(shù),例如第一個數(shù)據(jù)$12,002讀入后應為120.02。請建立一個SAS數(shù)據(jù)集,變量為x、y。 $12,002 $34,231 $2,210 $21,311,2、字符型變量 只介紹一個格式: $CHARw. :讀取包含空格的連續(xù)字符,例5. 下面是一些人名,請將其讀入到一個變量NAME中,注意:姓和名之間有一個空格,建立的SAS數(shù)據(jù)集如右邊的形式。 Bill Clinton George Bush Tony Blair Saddam Hussein Vladimir Putin,data a; input name $ char14.; cards; Bill Clinton George Bush Tony Blair Saddam Hussein Vladimir Putin ; proc print; run;,Obs name 1 Bill Clinton 2 George Bush 3 Tony Blair 4 Saddam Hussein 5 Vladimir Putin,如果將char14.去掉,語句改為:input name $; 結果是什么樣的呢?,3、日期數(shù)據(jù) 日期數(shù)據(jù)的讀入通常需要運用日期型的格式。,輸出格式,日期型數(shù)據(jù)的輸入輸出格式大部份是相同的,下面是幾個常用的:,該例中日期數(shù)據(jù)的形式是什么樣的?,例6. 有如下的日期數(shù)據(jù),請建立一個SAS數(shù)據(jù)集EX6存儲,并以日期的形式顯示出來。,1Jan2002 03 Jan 2003 15/May/2004 12-FEB-2005 17*May* %2006 1*OCT*2007 30%sep%/2008,DD MMM YYYY 故選擇DATEw.輸入格式,data b; input dd date15.; format dd date9.; cards; 1Jan2002 03 Jan 2003 15/May/2004 12-FEB-2005 17*May* %2006 1*OCT*2007 30%sep%/2008 ; proc print; run;,1Jan2002 03 Jan 2003 15/May/2004 12-FEB-2005 17*May* %2006 1*OCT*2007 30%sep%/2008,例7. 有如下的日期數(shù)據(jù),請建立一個SAS數(shù)據(jù)集EX7存儲,并以日期的形式顯示出來。,01312002 03122003 5 13 2004 4 21 2005 5 25 2006 1/2/2007 3-24-2008,該例中日期數(shù)據(jù)的形式是什么樣的?,MM DD YYYY 故選擇MMDDYY10.輸入格式,01312002 03122003 5 13 2004 4 21 2005 5 25 2006 1/2/2007 3-24-2008,data b; input dd mmddyy10.; format dd mmddyy10.; cards; 01312002 03122003 5 13 2004 4 21 2005 5 25 2006 1/2/2007 3-24-2008 ; proc print; run;,自定義格式,使用PROC FORMAT過程進行格式的自定義。,PROC FORMAT ; INVALUE 格式名 格式; VALUE 格式名 格式;,其中,invalue定義輸入格式,value定義輸出格式。 下面只介紹定義輸出格式。,語法: PROC FORMAT; VALUE 自定義輸出格式名字 定義的格式 ; RUN;,自定義輸出格式名字:應符合SAS的命名要求,注意最后一個字符不能是數(shù)字。 定義的格式: 原始值=格式化的輸出值 如:value testf 1-5=“1-5” 6-=10”; value ynf 1=“是” 2=“否”; value $grpf “A”=“試驗組” “B”=“對照組”;,例8. 下面是我們班“問卷調查”資料的部份數(shù)據(jù)。變量sex的賦值是:1=Male,2=Female,變量Band46的賦值是:A=增加, B=不變, C=減弱 ,請建立一個SAS數(shù)據(jù)集EX8,對變量sex、Band46進行格式化。,data qespart; input id$ sex height weight band46$; cards; cnw1r01 2 154 49 C cnw1r02 1 169 64 B cnw1r04 1 169 67 A cnw1r05 2 153 50 B cnw1r06 2 160 50 A cnw2r02 2 156 46 A cnw2r03 1 173 62 B cnw2r04 1 168 57 B cnw2r05 2 155 45 B ; run; proc print; run;,PROC FORMAT; VALUE sexfmt 1=Male 2=Female ; VALUE $bandfmt A=增加 B=不變 C=減弱 ; RUN;,首先建立相應的輸出格式,上面建立了兩種類型的輸出格式: 一種是數(shù)值型的,即sexfmt,要求=號左邊為數(shù)值型數(shù)值或區(qū)間,如上面的1、2為數(shù)值; 另一種是字符型的,即$bandfmt,$表明該格式是字符型,要求=號左邊為字符或字符區(qū)間,如A 、 B 、 C 。,DATA qesfmt; SET qespart; FORMAT Sex sexfmt. Band46 bandfmt. ; RUN; PROC Print; RUN;,格式化后打印輸出的數(shù)據(jù),對變量進行格式化,PROC FORMAT; VALUE heighfmt LOW - =180 ; RUN;,利用格式對連續(xù)型變量的離散化分組(頻數(shù)表編制),例9. 對“問卷調查”資料中的身高編制頻數(shù)表,組距取5CM,小于150為第一組,150-155為第二組,在數(shù)據(jù)步中運用格式: Format height heighfmt.; 加標簽: label height =身高;,打印數(shù)據(jù)集的內容(部份),用FREQ過程生成的頻數(shù)表,SAS system Help “索引” 輸入“FORMAT procedure”,SAS函數(shù),1.SAS函數(shù)的定義 SAS函數(shù)是一個子程序,它由0個或幾個自變量返回一個結果值。每個SAS函數(shù)都有一個關鍵詞名字。 SAS函數(shù)的形式為: Function Name(argument,.) 例如: MEAN(x,y,z,a) SUM(x,y,z) MIN(SUM(x,y,z),1000),2. SAS函數(shù)的分類: SAS函數(shù)種類多,常用的有: 算術函數(shù)、數(shù)組函數(shù)、截取函數(shù)、數(shù)學函數(shù)、概率函數(shù)、分位數(shù)函數(shù)、非中心函數(shù)、樣本統(tǒng)計函數(shù)、隨機函數(shù)、字符函數(shù)、日期時間函數(shù)等。,3. 參數(shù)的表示法,三種方式均可: Function Name(OF variable1-variablen) Function Name(OF variable variable .) Function Name(variable, variable, .) 例如: sum(of x1-x5) sum(of x1 x2 x3 x4 x5) sum(x1,x2,x3,x4,x5) 是等價的。,三. 函數(shù)的分類 SAS函數(shù)主要分為以下幾類: 1、數(shù)學函數(shù) abs():求絕對值 mod(var1,var2):求var1除以var2后的余數(shù) sqrt():求平方根值 int():取整函數(shù),截取小數(shù)部分 round(var,規(guī)定):按規(guī)定四舍五入。規(guī)定取:0.1,0.01, log():計算以e為底的對數(shù)值 log10():計算以10為底的對數(shù)值 2、三角函數(shù) 3、概率分布函數(shù),4、樣本統(tǒng)計函數(shù) max():求最大值 min():求最小值 mean():求均數(shù) std():求標準差 sum():求和 5、隨機函數(shù) normal():產生一個正態(tài)分布的偽隨機數(shù) rannor():產生一個標準正態(tài)分布的隨機數(shù) 6、字符函數(shù) substr():從一個字符串中抽取或取代一個指定的子串 trim():去掉字符串尾部的空格 7、日期時間函數(shù) year():從變量中抽取“年份”值 month():從變量中抽取“月份”值 day():返回變量的天數(shù)值 mdy(月,日,年):將變量轉換成日期值形式 具體的函數(shù)請查閱: SAS Online Help-SAS Language-SAS Functions,列輸入,列輸入,列輸入方式是用來讀入嚴格按列排好的標準數(shù)據(jù),Input 變量名 開始列-結束列 ;,條件:同一變量原始數(shù)據(jù)值在相同的列中 特點:1.可以按任意順序讀入數(shù)據(jù) 2.字符型數(shù)據(jù)中間可以有空格 3.可以重復讀取原始數(shù)據(jù)中的某一部份 4.空格和小數(shù)點都作為缺失值處理 5.忽略開始和結尾部分的空格,例子,data a; input ques $ 1-17 age 3.1 gender$ 21-26 city $27-34 ; cards; I am here for you 23male 大 連 Are you there 26female 重 慶 haha 22male 哈爾濱 yes i am here 30female ; proc print; run;,手機號碼信息分解,手機號碼一編碼規(guī)則一般是:YYY-XXXX-ZZZZ,其YYY

溫馨提示

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

評論

0/150

提交評論