设为首页收藏本站

EPS数据狗论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 1623|回复: 0

SAS 输入与输出格式

[复制链接]

18

主题

187

金钱

294

积分

入门用户

发表于 2019-6-20 14:08:54 | 显示全部楼层 |阅读模式

一、认识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

  1. data work.test1;
  2. input x1 comma7. x2 comma7.;
  3. datalines;
  4. 123,112 332,1
  5. 412,3 321,678
  6. ;
  7. run;
  8. proc print data=work.test1;
  9. run;
复制代码

使用comma7.来对数据进行特殊的读取。

打印结果如下:
1.png

4、到的数值:12321
  1. data work.test1;
  2. input x1 dollar7. x2 comma7.;
  3. datalines;
  4. $123,112 332,1
  5. $412,3 321,678
  6. ;
  7. run;
  8. proc print data=work.test1;
  9. 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.png
      (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


五、自定义格式
语法:
  1. proc format;
  2. value 自定义输出格式名字 定义的格式;
  3. run;
复制代码

自定义输出格式名字:应符合SAS的命名要求,注意最后一个字符不能是数字。
定义的格式:原始值=格式化的输出值
如以下是原始的数据代码:
  1. data work.qespart;
  2. input id$ sex height weight band46$;
  3. cards;
  4. cnw1r01 2 154 49 C
  5. cnw1r02 1 169 64 B
  6. cnw1r03 1 199 54 C
  7. cnw1r04 2 133 90 D
  8. ;
  9. run;
  10. proc print data=work.qespart;
  11. run;
复制代码


使用自定义格式编辑输出格式:
  1. proc format ;
  2. value sexfmt 1='Male' 2='Male';
  3. value $bandfmt 'A'='增加' 'B'='不变' 'C'='减弱';
  4. run;
  5. data work.qespartfmt;
  6. set work.qespart;
  7. format sex sexfmt. band46 $bandfmt.;
  8. run;
  9. proc print data=work.qespartfmt;
  10. run;
复制代码

3.png
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

客服中心
关闭
在线时间:
周一~周五
8:30-17:30
QQ群:
653541906
联系电话:
010-85786021-8017
在线咨询
客服中心

意见反馈|网站地图|手机版|小黑屋|EPS数据狗论坛 ( 京ICP备09019565号-3 )   

Powered by BFIT! X3.4

© 2008-2028 BFIT Inc.

快速回复 返回顶部 返回列表