|
一、认识SAS中的数据格式
SAS 中的格式有:
数字型
字符型
日期型
1、其中数字型的格式有一下集中表示方式:
整型数值:321
浮点数值:321.123
带逗号的数值:123,21
到的数值:12321
带$符号的逗号浮点数据:
2、以字符型的数据格式只有一种,字符长度
3、日期格式分以下几种:
日期型:0值(1960.1.1),其他日期为与其的差值
时间型:0值(0时0分0秒)
日期时间型: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;
复制代码
|
|