SAS编程基础(4)

2020-04-03 11:35

输入/输出格式

? 什么是格式(Format)?

Format is an instruction the SAS System uses to display or write each value of a variable. 即:读入不同格式的数据,并按不同要求显示数据。

? 常见数据的数据格式: 字符型 数值型 日期时间型

用户自定义型( 用FORMAT过程定义)

? 注:除自定义类型外,其他类型的数据SAS系统均已定义好了相应的格式,只需要

调用即可

? 输入格式和输出格式的使用:输入格式通常在input语句中使用,输出格式通常在

format语句中使用。 1、字符型输入/输出格式

? 1、输入格式:$w. 和 $CHARw. 共同特点:缺省值均为变量的长度 不同点:

$w. :必须指定w的值,不保留字符串前的空格 $CHARw.:w的缺省值为8,保留字符串前的空格

2、输出格式:$w. 和 $CHARw. 共同特点:保留字符串前的空格 注:一个汉字占两个字节

例如:下面是一些人名,请将其读入到一个变量NAME中,注意:姓和名之间有一个空格,建立的SAS数据集如右边的形式。

data a;

input name $ char14.; cards; Bill Clinton George Bush Tony Blair Saddam Hussein Vladimir Putin ;

proc print; run;

2、数值型输入/输出格式

1、输入格式:w.d

w.d:读入宽度为w的原始数据,并存为SAS数值,也能自动读入以浮点方式表示的原始数据。

遵循以下原则:

2、输出格式: Bestw.d, w.d 和 Ew.

Bestw.d:系统默认格式(相当于后两种格式的自动识别)。w缺省值为12,最大值可达32 w.d:将数值用不超过d位小数及总宽度不超过w位的定点数表示 Ew. :用宽度不超过w的浮点数表示

注:宽度设置不合适时,自动调用SAS系统同宽度的Best格式表示。

? 特殊的输入格式

COMMAw.d :专为读入金额的数据而设置。读入宽度为w的字符串,并能自动去除逗号,空格,美圆符号和短横线,保留数字和小数点,还可将用括号括起来的数据记为负数。读入后按格式w.d记入数值。

DOLLARw.d 为其别名。

? 特殊的输出格式: COMMAw.d 和DOLLARw.d

COMMAw.d :将数值以包含小数位数不超过d位的定点数表示,并在整数部分自右往左每三位用逗号分隔,总字符数不超过w。COMMA6.为其缺省设置。 DOLLARw.d 在COMMA表示的数据左侧加上美圆符号。

data a;

input x comma7. y comma7.; cards;

12,002 34,231 2,210 21,311

run;

proc print; run;

data a;

input x comma7.2 y comma7.4;

cards;

12,002 34,231 2,210 21,311 run;

proc print; run;

data a;

input x dollar8. y dollar8.4; cards;

$12,002 $34,231 $2,210 $21,311 run;

proc print; run;

3、日期时间型输入/输出格式

? 日期,时间,日期时间型的数据均以与0值的差值数据存入计算机。? 零点值的规定

日期型: 0 值(1960.1.1),其他日期为与其的差值 时间型: 0值(0时0分0秒)

日期时间型 0值(1960年1月1日0时0分0秒)

? 日期输入格式 :YYMMDDw.

读入的数据形式为:yymmdd / yyyymmdd W:6-32,缺省为6

其他格式:MMDDYYw. 和DDMMYYw.

MMDDYYw.读入的数据形式为:mmddyy/mmddyyyy DDMMYYw.读入的数据形式为:ddmmyy/ddmmyyyy

? 日期输出格式 :YYMMDDxw.

读入的数据形式为:yymmdd / yyyymmdd W:2-10(x为N时,2-8),缺省为8 x B C D N P S 分隔符 空格 : - 无 . / YYMMDDw.相当于YYMMDDDw. 其他格式:MMDDYYxw. 和DDMMYYxw.

? 特殊日期输入/输出格式:DATEw.

输入/输出日期的格式为:ddmmmyy/ddmmmyyyy 缺省方式为DATE7.

? 时间输入格式:TIMEw. 读入的时间形式为:hh:mm:ss.ss 时分秒间的分隔符有:(:),(空格),(-);还有PM,AM

例:1 40 35.37 PM 读入格式time14. 49235.37 输出格式timeampm13.2 1:40:35.37 PM

? 时间输出格式:TIMEw.d d:可指明秒数包含的小数位数。 输出时总带有分隔符(:)

宽度不够时,先显示小时数,再是分钟,再是秒数。

? 日期时间输入格式:DATETIMEw.

读入的日期时间形式为:ddmmmyy hh:mm:ss.ss/ddmmmyyyy hh:mm:ss.ss W:13-40,缺省18

? 日期时间输出格式:DATETIMEw.d

输出格式形式:ddmmmyy:hh:mm:ss.ss/ddmmmyyyy:hh:mm:ss.ss W:7-40,缺省16

宽度不够时,从秒数开始截尾,宽度足够时(w>=19+d)时自动显示四位数的年份。

? 两位数年份输入

YEARCUTOFF=1920(此值可修改) 管理100年的时间:1920-2019

例:12/07/41 表示12/07/1941

18Dec15 表示18Dec2015

3.2 SET语句

1一般描述

格式:SET <数据集<数据集选项>> <选项> 语法 子项 说明 数据集 一个或多个 最多50个数据集 数据集选项 KEEP=变量(组) DROP=变量(组) RENAME=(旧变量名=新变量名) WHERE=表达式 IN=变量 FIRSTOBS=常数 OBS=常数 选项 NOBS=变量 POINT=变量 END=变量 KEY=索引名 创建新_IORC_,显示最近I/O操作序号,若KEY=值没找到,则返回_ERROR_=1 KEY=UNIQUE 规定从数据集索引的开关开始搜索 2例子:

keep

data keep;

set sashelp.class(keep=name sex); run;

data d1(keep=name) d2(keep=name sex);/*这是定义处使用*/ set sashelp.class(keep=name sex);/*这是调用处使用*/ run;

rename

data rename;

set sashelp.class(keep=name sex rename=(name=name_new sex=sex_new)); run;

where

data where;

set sashelp.class(keep=sex where=(sex='M')); run;

In的使用

data one;


SAS编程基础(4).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:《物理化学》高等教育出版(第五版)第十一章电 极 极 化

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: