2SAS基础表达式及函数简介
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
创建变量
使用赋值语句
Data a; x=1; run;/*数据集a中有个变量x,值为1,为数值型*/
使用INPUT语句
Data b; Input x $ y z; Datalines; Aaa 23 45 ; Run; /*创建三个变量,x为字符型,y、z为数值型*/
变量类型转换
字符自动转换为数值(无法转换为数值时,取缺失值)
AGE<100
在DATA步中,为了对变量进行变换,建立新变量、条件处理、计 算新值及指定新值,都需要使用SAS表达式。
一、SAS常数 SAS常数用来表示固定的值,它或者是一个数字, 或者是用引号引起来的字符串、或者是其它特殊记号。 SAS使用的常数有五种类型:数值常量、字符常量、 日期、时间和日期时间常量、十六进制数值常量、十六 进制字符常量。我们主要介绍数值常量、字符常量和日 期常量。 1.数值常量: 一个数值常量就是出现在SAS语句里的数字。数值 常量可以包括小数点,负号和E记号。 例如:1 -5 1.23 1.2E23 0.1 0.5E-10。 用E表示法时,如2E4,它表示 2 10 4 ,或者20000。
Variables
Observations Value
来自百度文库
SAS数据集(部分)
输入输出格式
原始数据值 Format 格式化的 SAS (输入格式) 变量的值 (输出格式) SAS变量值 Informat
Dollar10.
Comma8.
$548,231
548231
548,231
Date9.
MMDDYY10.
data; Y=10; /*Y为数值变量 */ Z=’ROOM’||Y; /*自动将数值变量Y转换为字符变量 */ put Z=; Z=ROOM 10 run;
data ; Y=10600001; /*Y为数值变量 */ Z=SUBSTR(Y,7,6); /*自动将数值变量Y转换为字符变量 */ put Z=; run; Z=600001
SAS表达式及函数简介
SAS表达式
SAS表达式是由一系列算符和运算对象形成的一个指令集,它 被执行后产生一个目标值。 运算对象是SAS变量和SAS常数;算符是特殊的运算符、函数 和括号。
表达式分为简单表达式和复合表达式。 下列式子都是表达式。 X+1 3 LOG(X) LOG10(X) P/A*100 1-EXP(N/(N-1)) A=B=C STATE=‘CA’
注意:为了使数值型变量显示日期形式,必须使用日期型
的输出格式,同样地为了以日期形式输入日期必须使用 日期型的输入格式。
SAS变量分为两类,数值变量(Num)与字符变量(Char)。 数值型变量只能取数值为值。可以有正负号及小数点 (+、-、•),但不能有逗号(,)。 数值型是SAS的默认变量类型,默认长度为8位。 字符型变量可以取字符、字母、特殊字符以及数字为 值。 在DATA步中某些SAS语句中,第一次出现的变量名 后跟一个美元符号($),即表明该变量是字符型变量 ,如name$ 或name $。如果变量后不加$符号,SAS将 该变量认为数值型。 在SAS中一个字符变量的取值可以有1-32768个字 符长,默认长度为8个字符长;或由第一次赋值时字符 长度决定。
25JAN2004
16095
01/25/2004
日期和时间数据的存储
SAS采用数值存储日期和时间形式的数据。
在默认情况下,SAS系统以0代表1960年1月1日0时。 其它日期在SAS系统中被存储为与该日期相差的天数。
例如,1960年1月3日,在系统中存为2。
2004年1月25日,在系统中存为16095。
SAS系统中,数值缺失值用小数点来(.)表示。
2.字符常量 字符常量是由(单)引号括起来的字符串.
例如,在下面的语句中: IF name=‘TOM’ THEN DO; ‘TOM’就是一个字符常量。 如果字符常量含有引号,则用两个连续的单引号来处 理。例如,字符值为TOM’S时,输入: name=’TOM’’S’ 缺失的字符常量值为空字符,表示为’’或””(两个连续的 单引号或双引号)。
函数INPUT将字符转换为数值
INPUT函数的形式: INPUT(数据源, 输入格式); 其中: 数据源为要转换为数值的变量,常数或表达式。数 据源既可以是数值型,也可以是字符型。 输入格式规定对数据源进行转换的输入格式。
data a; y=input("12345",5.2); run;
数值自动转换为字符
t
或 DDMMMYYYY
日期时间常量:‘15may2008:
注意:日期格式为:DDMMMYY
即,月份需要用三个英文字母表示
二 SAS变量:
描述给定特征的数值集合的指标称为变量。 SAS变量的特征: 变量名、类型、存储长度、标签、输入格式、输出格式
存储长度指变量在存储时所需要的字节数。默认情况下所有的变量都定 义为8字节。字符变量的长度可为1-32768字节,数值变量的长度可为3-8 字节。 标签是对变量的补充说明,可以为任意字符,长度可多达256个字符。
data; X=1; /*X为数值变量 */ Y=’10’; /*Y为字符变量 */ X=Y; /*将字符变量赋值给一个数值变量时, 自动将字符变量Y转换为数值变量 */ run; data; X=1; /*X为数值变量 */ Y=’10’; /*Y为字符变量 */ Z=X+Y; /*算术表达式中有字符变量时,自动将字符变量Y 转换为数值变量 */ run;
注意,下面语句中 TOM不是字符常量,而是按变量处理!!
IF name=TOM THEN Score=85;
3. 日期、时间常量:
日期\时间常量是将日期\时间由(单)引号括起来, 后面加上d或t或dt而形成的。 例如: 日期常量:‘15may2008’ 时间常量:‘16:45:01’
d
16:45:01’dt
data; X=’abcd’; /*X为字符变量 */ Y=123; /*Y为数值变量 */ X=Y; /*自动将数值变量Y转换为字符变量 */ run; 注意: 将数值变量赋给字符变量时,结果会受到字符变量长 度的影响!长度不足时,SAS尽量转换成能够满足长度限 制的结果,即科学记数法。
数值转字符之后的格式: