SAS學習經驗總結分享:篇二—input語句


SAS編程語言中input語句的應用

  •         SAS數據步的建立離不開input語句,在讀入外部數據或cards語句后面的數據塊時需要通過input語句定義變量。下面介紹input語句定義變量的四種方法:  SAS變量分為字符型和數值型,字符型變量加 $ 符號。

   (本文為博主原創,轉載必須標明出處:http://www.cnblogs.com/smallcrystal/p/4841119.html )

  1. input  變量1 變量2 $;/*只列出變量名,變量之間以空格分隔,只是字符類型加$符號。缺點:不能輸入帶空格的數據,並且字符類型數據最多8個字符。*/

  2. input  變量1 1-X 變量2 $ X+1-Y;/*變量名用列格式定義對應的數據,變量名后的數字指明變量對應的數據所對應的列的位置。缺點:變量數據要嚴格按照列格式對應的列輸入。*/

  3. input 變量1 $變量1總長度.小數位數  變量2 變量2總長度. ;/*指明變量的類型,變量長度。缺點:需要嚴格按照列格式輸入數據。*/

  4. input @變量名1 $變量長度.小數位數;/*通過絕對指針的方式讀入變量對應的數據。確定:把變量對應的列位置計算出來。*/

  •     上述第三種是常用的一種方式,對於數據包含特殊字符的情況,可以通過格式修飾符的形式進行處理,格式修飾符包括以下三種:

  1. 冒號(:):從非空單元格開始讀取數據,直到滿足下面任意情況:(1)遇到下一個空格(2)變量長度已讀滿(3)數據行結束。例:input 變量1 :$變量長度. 變量2 @;加冒號之后數據輸入時不用嚴格按照數據長度對應列排布了,因為遇到空格即使長度不夠也會停止。這是比input第三種讀取方式的優勢所在。

  2. &:修飾數據中含有空格的字符數據。例:input 變量1 &:$長度.小數位數 變量2 長度.小數位數 @;

  3. ~修飾讀取數據對應的列包含單引號、雙引號或分隔符的字符列,input 變量1 ~&:$變量長度.小數位數 變量2 變量長度.小數位數;

  •     input 變量中日期和時間變量是轉化成數值型變量儲存的,讀入日期格式的方法:

  1. input 變量名1 $ 變量名2 $ 變量名3 datew.; 日期格式datew.默認為7,w指日期長度,格式ddmmmyy或者ddmmmyyyy,月是應為前三個字符;

  2. input 變量名1 $ 變量名2 $ 變量名3 datetimew.d;日期時間格式datetimew.d,默認16位,我w指日期時間的長度,d小數位用來指定秒的值,ddmmmyyhh:mm:ss.s;

  3. input 變量名1 $ 變量名2 $ 變量名3 Julianw.;讀入日期書寫格式yydd或yyddd,ddd是按照年初到現在的天數。

  4. 其他格式:ddmmyyw. 、mmddyyw.、yymmddw. 、timew.d等

  •     如果認為通過input定義變量的時候設置變量類型及格式較為麻煩,可以先通過informat語句定義變量格式,再用input來引用變量名即可。

    如日期變量:informat 變量名 yymmddw.;   input 變量名;

  •     字符型變量長度超過8字節,需要在input語句之前通過length語句定義變量長度:length 變量名 $ 長度;

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM