SAS 輸入與輸出格式


SAS 輸入與輸出格式

一、認識SAS中的數據格式

SAS 中的格式有:

  1. 數字型
  2. 字符型
  3. 日期型

1、其中數字型的格式有一下集中表示方式:

  1. 整型數值:321
  2. 浮點數值:321.123
  3. 帶逗號的數值:123,21
  4. 到$的數值:$12321
  5. 帶$符號的逗號浮點數據:

2、以字符型的數據格式只有一種,字符長度

3、日期格式分以下幾種:

  1. 日期型:0值(1960.1.1),其他日期為與其的差值
  2. 時間型:0值(0時0分0秒)
  3. 日期時間型:0值(1960年1月1日0時0分-秒)

二、對數值型數據的輸入與輸出格式處理

常規輸入格式為:w.d

  w.d : 讀入寬度為w的原始數據,並存為SAS數值,也能自動讀入以浮點方式的原始數據。

常見的輸出格式為:bestw.d, w.d(將數值不超過d位小數及總寬度不超過w位的定點數表示) 和 Ew.(表示寬度不超過w的浮點數表示)

1、整型數值:321  (可以采用輸入格式進行表示)

2、浮點數值:321.123(可以采用輸入格式進行表示) 

3、帶逗號的數值:123,21

data work.test1;
input x1 comma7. x2 comma7.;
datalines;
123,112 332,1
412,3 321,678
;
run;
proc print data=work.test1;
run;

使用comma7.來對數據進行特殊的讀取。

打印結果如下:

4、到$的數值:$12321

data work.test1;
input x1 dollar7. x2 comma7.;
datalines;
$123,112 332,1 $412,3 321,678
;
run;
proc print data=work.test1;
run;

三、字符串的數據格式

1、輸入格式:$w. 和 $CHARw.

共同特點:缺省值均為變量的長度

不同點:

  $w. :必須指定w的值,不保留字符串前的空格

  $CHARw.:w的缺省值為8,保留字符串前的空格

2、輸出格式:$w. 和 $CHARw.

共同特點:保留字符串前的空格

四、日期時間型

1、日期輸入格式:YYMMDDw.

  (1)讀入的數據形式為:yymmdd / yyyymmdd

  W:6-32,缺省為6

  其他格式:MMDDYYw.和DDMMYYw.

  (2)MMDDYYw.讀入的數據形式為:mmddyy/ mmddyyyy

  (3)DDMMYYw.讀入的數據形式為:ddmmyy/ddmmyyyy

2、日期輸出格式:YYMMDDxw.

  (1)輸出的數據形式為:yymmdd/yyyymmdd

  w:2-10(x為N時,2-8),缺省為8

  (2)YYMMDDw.相當於YYMMDDDw.(第三個D表示-)

  (3)MMDDYYxw.和DDMMYYxw.

3、特殊日期輸入/輸出格式:Datew.

  輸入/輸出日期的格式為:ddmmmyy/ddmmmyyyy

  缺省方式為DATE7.

4、時間輸入格式:TIMEw.

  讀入的時間形式為:hh:mm:ss.ss

5、時間輸出格式:TIMEw.d

  d:可指明秒數包含的小數位數

  輸出時總帶有分隔符(:)

  寬度不夠時,先顯示小時數,在顯示分鍾,在是秒數

6、日期時間輸入格式:DATETIMEw.

  讀入的日期時間形式為:ddmmmyy hh:mm:ss.ss /ddmmmyyyy hh:mm:ss.ss

  w:13-40,缺省為18

7、日期書簡輸出格式:DATETIMEw.d

  輸出格式:ddmmmyy hh:dd:ss.ss / ddmmmyyyy:hh:mm:ss.ss

  w:7-40,缺省為16

五、自定義格式

語法:

proc format;
value 自定義輸出格式名字 定義的格式;
run;

自定義輸出格式名字:應符合SAS的命名要求,注意最后一個字符不能是數字。

定義的格式:原始值=格式化的輸出值

如以下是原始的數據代碼:

data work.qespart;
input id$ sex height weight band46$;
cards;
cnw1r01 2 154 49 C
cnw1r02 1 169 64 B
cnw1r03 1 199 54 C
cnw1r04 2 133 90 D
;
run;
proc print data=work.qespart;
run;

使用自定義格式編輯輸出格式:

proc format ;
value sexfmt 1='Male' 2='Male';
value $bandfmt 'A'='增加' 'B'='不變' 'C'='減弱';
run;
data work.qespartfmt;
set work.qespart;
format sex sexfmt. band46 $bandfmt.;
run;
proc print data=work.qespartfmt;
run;

 


免責聲明!

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



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