sas数据步课件(编辑修改稿)内容摘要:

IF表达式 THEN 语句 A; ELSE 语句 B; ( 3) IF语句 语句格式: IF 表达式; 50 (六)数据排序 语句格式: PROC SORT [DATA= ] [OUT= ]; BY [DESCENDING ] 变量名 … ; 51 (七)数据集纵向连接 语句格式: DATA 新数据集名; SET 原始数据集名 … ; 1.变量相同 所有待连接的数据集包含相同的变量,则连接后生成的新数据集也包含同样的变量。 2.变量不同 如果待连接的数据集包含有不同的变量,新数据集将包括所有的变量,并将没有数据的变量值定义为缺省值。 52 (八)数据集横向连接 语句格式: DADA 新数据集名; MERGE 原数据集名 ...; • 一对一合并 即将序号 OBS相同的两个或多个观测值合并为一个观测值,合并后新数据集的观测值个数与原始数据集中观测值个数最多的相等,观测值不足的则用缺省值代替。 • 匹配合并 参加合并的数据集首先按同一的BY变量分别排序 , 再将有相同 BY变量值的观测值合并成为新数据中的观测值。 用以排序的变量称为匹配变量。 53 华中科技大学公卫学院 流行病与卫生统计系 第三节 数据输出 54 用于数据输出的语句主要有 FILE语句; PUT语句; OUTPUT语句; LIST语句。 55 一、 FILE语句 作用 是定义一个外部文件作为当前的输出文件,以供 PUT 语句将数据输出到该文件中。 语句格式: FILE 文件说明 [选择项 ]; 56 文件说明 文件说明用来标识一个文件 , 有下列几种形式: 1. FILE ‘ 文件全名 ’ ; 标识文件的完整名字 , 包括盘符 、 路径及文件名 , 文件名括在单引号内。 2. FILE 文件逻辑名 ; 用文件逻辑名标识当前的输出文件。 使用前先通过 FILENAME语句把输出文件与它的文件逻辑名联系起来。 3. FILE LOG; 指定把 PUT语句产生的出行写到 SAS日志中。 LOG为 SAS数据步设臵的输出文件的缺省值。 4. FILE PRINT; 指定把 PUT语句的内容送到标准的 SAS打印文件中 , 即送到 OUTPUT窗口。 57 二、 PUT语句 在数据步中,输出信息可以使用 PUT语句。 当 PUT语句前有 FILE语句时,信息被送到由 FILE语句定义的外部文件中;当PUT语句前无 FILE语句时, 信息将输出到日志窗口。 语句格式: PUT [语句说明 ]; PUT语句的输出内容包括变量值和字符串。 58 ( 一 ) 变量说明 指明要输出的变量名及变量的输出格式。 与 INPUT语句相似, 变量输出格式包括列输出格式,列表输出格式(或自由格式)和定义格式,另外还可以使用指针控制方式输出。 59 例 1422 将数据集 CLASS中全部女生的数据输出 到 OUTPUT窗口。 DATA FEMALE; SET CLASS; FILE PRINT; IF SEX=‘F’ THEN PUT ‘NAME’ NAME ‘S 1: ’ S1 ‘S 2’ S2 ‘S 3’ S3; RUN; 60 NAME: YANJIN S1: 98 S2: 87 S3: 93 NAME: MALIN S1: 88 S2: 85 S3: 90 NAME: LIMIN S1: 87 S2: 93 S3: 90 输出结果: 三、 OUTPUT语句 OUTPUT语句的作用是把当前的观测值写入正在建立数据集中。 简单的 SAS 数据步并不需要 OUTPUT语句 , 因为系统会自动将当前输入的观测值输出到正在建立的数据集中。 只有在下面三种情形下 , 才会用到 OUTPUT语句以控制观测值的输出。 〃 从一个输入数据行创建多个观测值; 〃 从一个输入数据文件创建多个 SAS数据集; 〃 将多个观测值合并成一个观测值。 61 语句格式: OUTPUT [数据集名表 ]…… ; 该语句的作用是将当前观测值输入到语句所规定的数据集中。 OUTPUT语句可以给出多个数据集的名字 , 所有给出的数据集名一定要在 DATA语句中定义过;如果语句后未规定数据名 , 则当前观测值被写到程序正在建立的所有数据集中。 62 (一)从一个输入数据行创建多个观测值。 例 1423 某班学生的考试成绩,有姓名及两个科目的考试分数。 要求用这批数据建立一个 SAS数据集,每个姓名后只有一个科目的成绩, 即对于每一个输入行要产生两个观测值。 63 DATA REPEAT; INPUT NAME $ S1 S2 ; DROP S1 S2 ; S=S1; OUTPUT; S=S2; OUTPUT; CARDS; WANGBO 97 95 LIMIN 88 90 CHENRYN 75 86 PROC PRINT; RUN; OBS NAME S 1 WANGBO 97 2 WANGBO 95 3 LIMIN 88 4 LIMIN 90 5 CHENYIN 75 6 CHENYIN 86 (二)从一个输入数据文件创建多个 SAS数据集 例 1424 将数据集 CLASS分成男生和女生两个数据集。 DATA CLASS1 CLASS2; SET CLASS; IF SEX=‘M’ THEN OUTPUT CLASS1; ELSE OUTPUT CLASS2; RUN; 数据集 CLASS1包含男生的各科目成绩,数据集 CLASS包含女生的各科成绩。 64 三)将多个观察值合并成一个观测值 例 1425 利用前例中包含学生科目成绩的数据集REPEAT, 建立一个只包含每个学生总成绩数据集。 PROC SORT DATA=REEPEAT; BY NAME; DATA TOS; SET REPEAT; BY NAME; IF FIRST. NAME THEN SUMS=0; SUMS+S; DROP S; IF LAST. NAME THEN OUTPUT; PROC PRINT; RUN; 65 OBS NAME SUMS 1 WANGBO 192 2 LIMIN 178 3 CHENYIN 161 四、 LIST语句 LIST语句又称列表语句。 它的作用是将当前的输入数据行输出至 LOG窗口,并在输出的数据前面显示出列标尺,以便检查输入的数据是否有错误。 66 四、 LIST语句 LIST语句又称列表语句。 它的作用是将当前的输入数据行输出至 LOG窗口,并在输出的数据前面显示出列标尺,以便检查输入的数据是否有错误。 67 华中科技大学公卫学院 流行病与卫生统计系 SAS常量、变量、运算符与函数 68 SAS语言和 SAS程序 常量 69 数值常量由数字 0~9、小数点、正负号和E等符号组成。 例如: 12 23 ( 108) 数值常量的缺省值用 “ ”来表示。 2.字符常量 字符常量由 1~ 200个字符组成。 在赋值语句中,字符常量要用定界符单引号或双引号括起来。 字符常量的缺省值用空格表示。 70 3.日期、时间和日期时间常量 该型常量必须用单引号括起,后续一个 D( Date)、 T(Time)或 DT( DateTime)表示其类型。 ‘8JAN1999’D 表示日期值 ‘10:45’T 表示时间值 ‘8JAN99:9:25:14’DT 表示日期时间值 例: 变量命名 :变量名由英文字母或下划线‘ ’开头,后续 1~8个字符组成。 一些特殊字符(如#, $,@等)不能出现在变量名中。 SAS系统还规定了一些特殊的变量名,例如: _N_, _ERROR_ 变量特性 变量类型:有数值型、字符型和日期型三种。 字符型变量在定义时,变量名后面加一‚ $‛ 号表示。 变量长度:指存储变量值的字节数,可用 LENGTH语句定义。 缺省值是 8个字节。 变量输入输出格式 71 变量 命名方式 顾名思义(即根据英文单词来命名) sex name age height weight etc.  顺序变量 temp1, temp2, temp3, temp4 和 temp5 x1, x2, ... X10 var1, var2, ... Var10 72 data d; input id age temp1temp5; temp=sum( of temp1temp5) / 5; label age =‘age in years’ temp =‘Average temperature’; cards; (数据) run; SAS变量的类型 数值变量( interval variable) 变量的值不含字符 字符变量( norminal , categorical variable) 变量的值含有字符 日期时间变量( date, time variable) 值为日期时间 73 输入输出格式 输入 用 SAS程序将原始数据转变成 SAS系统认可的 SAS数据 输出 将 SAS系统里的 SAS数据调出来,完成某指令或任务 输入格式 是输入原始数据前,用户告诉系统每个变量的类型,字符长度或数据所在的位臵等信息 输出格式 输出数据时用户希望得到的数据形式 74 数值变量 常用的输入或输出格式符号是: 或 w. w 表示变量的字符长度, d 表示变量中小数的位数 Height age 2. 字符变量 常用的输入或输出格式符号是 $w. 例如 SEX $1. 日期变量 常用的输入或输出格式符号是 YYMMDDw. 或 DDMMYYw. 或 MMDDYYw. 或 DATEw. w 表示日期变量中字符的长度 yymmdd8. date8. mmddyy6. 75 *注意 SAS的时间表示 SAS的时间输出格式 注意,当输出时间变量时,输出格式用yymmdd10. 或 date10. 或不用输出格式,其输出的结果形式是完全不一样的。 例如, 20202020的输出结果分别是 20201220, 20DEC2020 和18616。 对于日期变量,如果输出时不给出输出格式,那么输出结果是一个按日排列得到的常数。 SAS系统规定 1960年 1月 1日等于 1,然后以此类推。 例如,1959年 1月 1日等于 365, 1979年 1月 1日等于常数 6940。 76 77。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。