当前位置:文档之家› 第2章 sas编程简介及简单统计分析

第2章 sas编程简介及简单统计分析


DATA步中的常用语句
1. 赋值语句与表达式 格式为:变量名 = 表达式; 例如:avg=(math+Chinese+English)/3; isfcat = (sex='f'); y=Log(x)**2;newprice = .; 其中第一个赋值语句用一个公式计算平均分数。 第二个表达式利用逻辑运算生成一个取值为0或1 的变量,当性别变量“sex”的值为f时,计算结 果为1,否则为0。第三个表达式使用对数函数和 乘方运算。第四个表达式给变量赋了缺失值。注 意:数值型变量的缺失值为点“.”,字符型变量 的缺失值为空格“ ”。
格式说明就不需用列方式,列方式与格式方式只 能选其一,不能两者同用。 例: INPUT NAME $12. @14 SEX $ +2 AGE 2. @25 SALE COMMA10.2 ;
DATA步中的INPUT语句
日期数据格式: SAS系统日期数据以1960年1月1日为起始日,系统以距 离起始日期的总天数记录实际日期。例如1962年3月20日被 存储为809,表示此日期与1960年1月1日相距809天。所以, 当变量的值为日期类型或时间类型时,用户必须规定变量的 输入和输出格式。 例如1997年12月20日,可用下列日期格式表示: MMDDYY6. 月日年6位 例: 122097 MMDDYY8. 月日年8位 例: 12/20/97 或12-20-97 或 12201997 DDMMYY6. 日月年6位 例: 201297 YYMMDD6. 年月日6位 例: 971220 DATE7. 日月年7位 例: 20DEC97 DATE9. 日月年9位 例: 2ODEC1997 MMDDYY10. 月日年10位 例: 12/20/1997 或 12-20-1997
SAS过程步简介
3.BY语句 BY语句在过程步中用来指定一个或几个 分组变量,根据这些分组变量值可以把观测 记录分组,然后对每一组观测分别进行指定 的分析。在使用带有BY语句的过程步之前, 应先用SORT过程按BY语句指定的变量对数据 集排序。
例:假设我们已经把class1数据集按性别排序,则 下面PRINT 过程可以把男、女生分别列出:
DATA步中的INPUT语句
$W.:长度为W的标准字符串,应用实例: $12. ,指字符串长度为12位。 COMMAW.D :长度位为W的数字,其中小数点 占一位,小数部分占D位,正负号占一位, 数据的整数部分每3位有一个逗号分隔符, 逗号也占字符串宽度。应用实例: COMMA12.1 ,效果为:63,145,690.5 。 $CHARW. :宽度为W,含有空格的字符串。有
DATA步中的INPUT语句
高级输入格式控制描述符: 行保持标示符 @ 和 @@ @ :CARDS语句中的数据一行为一条观测记录,用多 条INPUT语句读入。 @@:CARDS语句中的数据一行为多条观测记录,用 一条INPUT 语句读入。 / : 从下一行第一列开始读数据。 #N :指明从第N行开始读数据 。
例2.3 数据步中所有的INPUT语句完成一个观测记 录的数据输入(程序Data2_3.sas) DATA A ; INPUT NAME $ AGE ; /* 此语句应改写为 : INPUT NAME $ AGE @ ;*/ INPUT WEIGHT ; CARDS ; ZHANG 23 75.6 XIAO 12 32 WEI 14 30 ; RUN ; PROC PRINT ; RUN ;
Data步语句说明:
1. SAS处理的数据可分为:字符型、数值型 两大类,日期型数据属于数值型。 2. 字符型变量名后必须使用$说明符。 3. 每行数据的行尾不能有分号“;”,但数据 行 结束后的”;”分号必须单独占一行。 4. 变量名不分大小写。
例2.1 data2_1.sas
DATA CLASS ; INPUT NAME $ 1-11 SEX $ AGE HIGHT WEIGHT ; CARDS; ZHANG HONG F 18 176 75 WANG XING M 19 163 55 LI NING F 17 169 70 ; /*分号必须单独占一行 */ RUN ;
DO UNTIL (循环退出条件) ; 循环体语 句……; END; data dd; x=5; do until(x>50); y=x*x; x=x+1; output;end; run;
SAS过程步简介
SAS过程步的一般形式为: PROC 过程名 [ DATA=输入数据集] [选 项]; ………….. <Var 变量序列;> <Where 过程语句;> <BY变量序列;> RUN;
பைடு நூலகம்ATA步中的常用语句
select (price);/*括号内表达式可以不用*/ When(12,24) put '价格高'; when(3,5,7) put '价格底'; otherwise put '价格不明'; end;
DATA步中的常用语句
6. 循环语句 1)DO循环(又称为计数DO循环) DO 计数变量 = 起始值 TO 结束值 BY 步长; 循环体……; END; 循环体由一个或多个程序语句构成。计 数变量、起始值、结束值、步长应该是相同 数据类型的变量。在一般情况下,当步长大 于0时,起始值应小于结束值;当步长小于0 时,起始值应大于结束值。
例2.2 日期与时间的格式应用:data2_2.sas
DATA DAYS ; INPUT BIRTHDAY MMDDYY8. +1 INDAY MMDDYY8. +1 TESTDAY DATE9.; CARDS; 08-04-83 07/14/90 20SEP1990 11-14-83 07/26/90 20SEP1990 ;
DATA步中的常用语句
if mod(x,2)=0 then do; y=x**3; Ly=Log(x); Output; end; else continue ;
DATA步中的常用语句
2)SELECT语句 SELECT (选择表达式); WHEN(值列表1) 语句1; WHEN(值列表2) 语句2;…… OTHERWISE 语句n; END; 其中“选择表达式”是一个计算结果为数值或字 符 的表达式,“值列表”由一个或者若干项构成,各 项 之间用逗号分隔,每项可以是一个与选择表达式具 有相同数据类型的常量或表达式。“语句”可以是
DATA步中的常用语句
DATA步中的常用语句
DATA步中的常用语句
DATA步中的常用语句
DATA步中的常用语句
DATA步中的常用语句
5.分支语句 SAS系统提供2种实现分支结构控制的语句,IF语句 和SELECT语句。 IF语句 语法格式:IF 逻辑表达式 THEN 语句1;ELSE 语句2; 语句功能:当逻辑表达式的计算结果为真时,执行 语句1,否则执行语句2。
DATA步中的INPUT语句
2)自由格式 :
格式:INPUT 变量名1[$] 变量名2[$]…变量n[$]; 语句的功能与特点: 说明:数据项之间要至少用一个空格分隔。 字符型数据中间不能有空格,且最长为200个字 符 。用小数点‘ . ’表示数值型数据的缺失值 。 每个字段变量要按顺序排列 。
例如: INPUT NAME $ SEX $ AGE ;
Data bb ; do x=100 to 5000 by 50; y = SQRT(x); if y>=50 then CONTINUE; z = Log(x); output ; format x 8.3 y 20.5 z 20.5; end; run; 这个程序对100到5000之间的值每隔50计算一 次平方根,规定变量x,y,z的输出格式分别为8.3、 20.5、20.5 。如果平方根值大于等于50则不计算 不方根,而直接考虑下一个值。
注意:输出的日期格式长度一般应与日期的输入格
式一致。 如输入格式为MMDDYY6. ,输出格式可以是 MMDDYY6. 或MMDDYY8. 。如果输出格式为 MMDDYY10. ,就会产生输出错误。
DATA步中的INPUT语句
4) 组格式输入: 组格式输入语法格式: INPUT (变量1-变量N ) (输入格式描述符); 例a:INPUT (x1-x5) (4.) ; /*变量x1-x5最多为4位整数*/ 例b:INPUT (aa bb ) ($8. ,7.2 ) ; (变量aa为8位长的字符型数据,变量bb为7位长, 且小数为2位的数值型数据) 例c: INPUT (Name price1-price6 )($12. 6*8.1); (变量Name为12位长的字符,price1-price6共6个变 量均为8位长的数值,小数为1位)
DATA步中的INPUT 语句
INPUT 语句具有的四种使用格式: 1) 列标识方式 (COLUMN) 格式:INPUT 变量名1[$] 起始列-终止列 变量名 2[$] 起始列-终止列…变量名n[$] 起始列-终止列; 功能:输入值严格按指定列号顺序获取。 注意:字符型数据中可镶嵌空格,数据最长为200个 字符,字符型变量要跟一个$字符 。 例如: INPUT NAME $ 1-12 SEX $ 13 AGE 1415 ;
DATA步中的INPUT语句
3) 格式输入:
格式:INPUT 指针控制 变量输入格式描述符; 指针控制: @ N 指针转向第N列; (绝对移动) + N 指针向右移N列 ; (相对移动) 常用SAS变量输入格式描述符说明: W. :宽度为 W 位标准数字,应用实例: 8. ,指 数值型数据长为8个字符,且小数点位为零位。 W.D :含小数点的标准数字,数字总长度为W位, 其中包括小数点占1位,小数占D位,以及正负符 号占一位,所以所描述数据的整数部分的位数最 多为W-D-2 位。应用实例: 10.3 ,效果为 523458.356 。
相关主题