2SAS编程简介2.ppt_第1页
2SAS编程简介2.ppt_第2页
2SAS编程简介2.ppt_第3页
2SAS编程简介2.ppt_第4页
2SAS编程简介2.ppt_第5页
已阅读5页,还剩70页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、2.SAS编程简介,SAS程序由数据步和过程步构成, 数据步(Data Step)的设计灵活多样, 过程步(Proc Step)的设计比较规范, 我们先重点介绍SAS系统数据步(Data Step)编程。,由三部分组成;SAS语句以一个关键词开始, 以分号(;)结束; Data esr; /*数据步:输入并建立数据*/ Input x; Cards; 3 9 8 6 5 5 7 3 10 8 10 4 ; Proc print; /*过程步:调用现成的SAS过程,进行统计分析*/ Run; /*在程序最后,指示过程步或数据步结束,可以提交*/,SAS程序结构:,Log窗输出,Output窗输出

2、,程序运行-在编辑窗输入程序后 点击图标 按功能键“F8” 在命令行(窗)键入“submit” 在run下拉菜单中选“submit ” 窗口内容保存-激活窗口后 在命令行(窗)键入 file “路径文件名” 点击图标 在file下拉菜单中选“save ”或“save as”,二、SAS程序和SAS数据集,常用的快捷键 F4 recall命令,用于edit窗,将前面提交的程序调回,可多次使用 F5 切换到edit窗 F6 切换到log窗 F7 切换到output窗 F8 submit命令 Ctrl-E 清除当前窗口的内容。 edit窗被清除的内容不能用F4调回,二、SAS程序和SAS数据集,2.

3、1 SAS程序设计语言基本常识,SAS统计分析程序主要包括两大步骤: 一是数据步:将需要分析处理的数据组织成SAS系统能够接受的SAS数据集,数据步由Data关键字引出,大小写均可,由实现数据输入的数据步语句组成,完成计算原数据的准备工作。 二是过程步:SAS系统所提供的强大的统计功能,都可以通过相应的过程步实现。但是SAS程序只能对SAS数据集进行操作,所以在进行数据处理之前必须首先应用数据步建立SAS数据集、或导入外部数据生成SAS数据集、或者使用Viewtable窗口建立数据集。 SAS程序的数据步和过程步中,每一步都可以作为一段完整的程序单独运行,数据步用于生成数据集,过程步用于完成各

4、种数据分析、生成分析报告。,2.1.1 SAS程序书写规范和运行方法,1. SAS程序的基本语法规定如下: SAS程序中除了赋值、表达式、注释和空语句之外,所有其它语句都以SAS关键字(SAS命令)引导(作为起始单词),且不分大小写。 程序中使用的所有计算对象(变量、数据集、逻辑库)都必须按SAS标识符定义规定命名。 标识符命名规则为: 以字母或下划线开头。 由字母、数字、下划线构成。 应用中不区分大小写英文字母。 每个SAS语句都必须以半角分号“;”作为结束符。 SAS数据步语句以DATA关键字开头,以RUN语句结尾。DATA步中可以使用INPUT、CARDS、INFILE、SET、MERG

5、E等语句指定数据源,也可以用赋值、分支、循环等程序流程控制语句实现复杂情况处理,完成复杂数据结构的输入和数据准备。,为了提高程序的可读性,在程序书写格式上 应遵循如下规则: 每个程序语句占一行。如果必须要占多行,从第二行起使用缩进格式。 所有数据步和过程步结束均加上“run ;”语句作为段落的结束。 每段的第一条语句和最后一条语句的第一个字母列对齐,中间语句按缩进格式写。,SAS系统中有多种程序调用执行的方法,常用的方法如下: 最基本的方式是点击Submit提交按钮,或按F8键,提交程序运行。 选择菜单Run|Submit,系统就会依次执行提交的全部程序,并在LOG窗口中给出程序执行状态的信息

6、,在OUTPUT窗口中显示计算分析的结果。 如果需要只执行程序中的某一部分,可以先选中要执行的程序段,然后按前面两种方式调用即可。此功能在调试程序时非常有用。,2.1.2 SAS程序中的注释,为了构成清晰的程序结构,建立具有良好可读性的 程序,在SAS程序中需要加入注释。程序注释内容 采用/*和*/在两端界定。注释可以出现在程序中任 何允许加入空格的位置,可以占多行。我们有时常 把注释语句放在被解释的程序代码的同一行内,有 时将注释语句单独占一行或若干行。下面是一个带 有注释的程序实例: /* 建立02级1班学生考试成绩的数据集 */ Data Stu0201; ,2.2 SAS DATA步简

7、介,2.2.1 DATA步基本结构 DATA数据步的语法结构 : DATA 数据集名 ; INPUT 变量名1$ 变量名2$ 变量名n$; 其它数据步语句 ; CARDS; /* (或 CARDS4 ; 当数据中有;作为数据时使用Cards4语句) */ 源数据行 ; /* (或 ; 上面使用了CARDS4语句时,下面一定对应使用4个分号) */ RUN;,2.2 SAS DATA步简介,Data步语句说明: SAS处理的数据可分为:字符型、数值型两大类,日期型数据属于数值型。 字符型变量名后必须使用$说明符。 如分号;作为数据出现在数据行中,就要使用CARDS4语句,并且数据行结束时要用4个

8、分号以区别作为数据的分号;字符数据 。 每行数据的行尾不能有分号“;”,但数据行结束后的”;”分号必须单独占一行。 变量名不分大小写。,例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 ; 注:INPUT语句中的NAME $ 1-11 是指变量NAME是字符型变量,数据在CARDS语句下方的数据行中占第1至11列,从

9、12列开始的数据是SEX变量的数据。SAS系统默认地以空格为各变量的数据分隔符,当某字符型变量的取值中含空格时,必须使用列标示指出该变量的取值长度,否则不能正确读入数据。在CARDS语句中的各变量的数据取值时应按列对齐,否则将导致数据获取错误。,2.2.2用DATA步生成SAS数据集,1. 用DATA步创建永久SAS数据集 SAS永久数据集需要使用两水平名称进行定义。定义过程由定义逻辑库与定义数据集两个步骤完成。逻辑库定义通过LIBNAME 语句完成,数据集定义应用DATA实现。 LIBNAME 语句语法格式: LIBNAME 逻辑库名称 子目录路径 ; DATA 语句语法格式: DATA 逻

10、辑库名.数据集名称 ; LIBNAME语句把磁盘中的子目录与用户定义的逻辑库名连接起来。,2.2.2用DATA步生成SAS数据集,程序Data2_2.sas LIBNAME EXAMPLE D:USER; DATA EXAMPLE.SALE ; 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 ;,2. DATA步中的INPUT 语句 DATA步中的INPUT语句用来确定 SAS数据集、数据集的数据类型、

11、排列次序,并实现数据的导入。INPUT语句读入CARDS语句下面的数据。对已经存在的永久SAS数据集,可以使用用SET、MERGE、UPDATE 等命令实现数据集的调用、合并或修改。 INPUT 语句具有的四种使用格式: 1) 列标识方式 (COLUMN) 格式: INPUT 变量名1$ 起始列-终止列 变量名2$ 起始列-终止列 变量名n$ 起始列-终止列; 注意,字符型变量要跟一个$字符 。,语句的功能与特点: 输入值严格按指定列号顺序获取。 字符型数据中可镶嵌空格,数据最长为200个字符 。 缺失值可用空格补齐。 例如: INPUT NAME $ 1-12 SEX $ 13 AGE 14

12、-15 ;,2) 自由格式 : 格式:INPUT 变量名1$ 变量名2$ 变量名n$ ; 语句的功能与特点: 数据项之间要至少用一个空格分隔 。 字符型数据中间不能有空格,且最长为200个字符 。 用小数点 . 表示数值型数据的缺失值 。 每个字段变量要按顺序排列 。,3) 格式输入: 格式:INPUT 指针控制 变量输入格式描述符 ; 指针控制: N 指针转向第N列 ; (绝对移动) + N 指针向右移N列 ; (相对移动) 常用SAS变量输入格式描述符说明: W. :宽度为 W 位标准数字,应用实例: 8. ,指数值型数据长为8个字符,且小数点位为零位。 W.D :含小数点的标准数字,数字

13、总长度为W位,其中包括小数点占1位,小数占D位,以及正负符号占一位,所以所描述数据的整数部分的位数最多为W-D-2 位。应用实例: 10.3 ,效果为523458.356 。 $W. :长度为W的标准字符串,应用实例:$12. ,指字符串长度为12位。,COMMAW.D :长度位为W的数字,其中小数点占一位,小数部分占D位,正负号占一位,数据的整数部分每3位有一个逗号分隔符,逗号也占字符串宽度。应用实例: COMMA12.1 ,效果为:63,145,690.5 。 $CHARW. :宽度为W,含有空格的字符串。 MMDDYY8. :日期格式 04/24/96 或04-24-96。 MMDDYY

14、10. :日期格式 04/24/1996 或04-24-1996。 有格式说明就不需用列方式,列方式与格式方式只能选其一,不能两者同用。 例: INPUT NAME $12. 14 SEX $ +2 AGE 2. 25 SALE COMMA10.2 ;,4) 日期数据格式: SAS系统日期数据以1960年1月1日为起始日,系统以距离起始日期的总天数记录实际日期。例如1962年3月20日被存储为809,表示此日期与1960年1月1日相距809天。所以,当变量的值为日期类型或时间类型时,用户必须规定变量的输入和输出格式。 SAS软件包对日期变量和时间变量提供了多种的处理方式。读入日期值时要说明所使

15、用的日期值格式。输出显示时也必须给定一种日期显示格式,否则系统直接输出总天数。 例如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,例2.3 日期与时间的格式应用:(d

16、ata2_3.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 ; 注意:输出的日期格式长度一般应与日期的输入格式一致。 如输入格式为MMDDYY6. ,输出格式可以是MMDDYY6. 或MMDDYY8. 。如果输出格式为MMDDYY10. ,就会产生输出错误。,5) 组格式输入: 组格式输入语法格式: INPUT (变量1-变量N ) (输入格式描述符); 例a:

17、 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位),6) 高级输入格式控制描述符: 行保持标示符 和 : CARDS语句中的数据一行为一条观测记录,用多条INPUT语句读入。 : CARDS语句中的数据一行为多条观测记录,用一条INP

18、UT 语句读入。 / : 从下一行第一列开始读数据。 #N :指明从第N行开始读数据 。,例2.4 数据步中所有的INPUT语句完成一个观测记录的数据输入 程序Data2_4.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 ; 程序说明:PRINT过程是将数据集输出到OUTPUT窗口,在以前DOS版的SAS系统软件中,通常使用PRINT过程来查看生

19、成的SAS数据集。,2.2.3 DATA步中的常用语句,1. 赋值语句与表达式 在SAS中用赋值语句计算一个表达式的结果并将结果保存到赋值运算符“=”左侧的变量当中。格式为: 变量名 = 表达式; 例如: avg=(math+Chinese+English)/3;isfcat = (sex=f);y=Log(x)*2;newprice = .; 其中第一个赋值语句用一个公式计算平均分数。第二个表达式利用逻辑运算生成一个取值为0或1的变量,当性别变量“sex”的值为f时,计算结果为1,否则为0。第三个表达式使用对数函数和乘方运算。第四个表达式给变量赋了缺失值。注意:数值型变量的缺失值为点“.”,

20、字符型变量的缺失值为空格“ ”。,5. 分支语句 SAS系统提供2种实现分支结构控制的语句,IF语句和SELECT语句。下面我们将分别介绍两种语句的语法格式、功能与使用实例。 IF语句 语法格式: IF 逻辑表达式 THEN 语句1; ELSE 语句2; 语句功能:当逻辑表达式的计算结果为真时,执行语句1,否则执行语句2。,If x0 then put x is a positive number; If x0 then DO; put x is a positive number; x=2*x; put x=; END;,if x=0 then x=2*x; Else x=-x;,2)SEL

21、ECT语句 SAS的SELECT 结构提供了更为灵活的多分支控制结构。SELECT结构有两种基本用法。 SELECT语法结构1: SELECT (选择表达式);WHEN(值列表1) 语句1;WHEN(值列表2) 语句2;OTHERWISE 语句n;END; 其中“选择表达式”是一个计算结果为数值或字符的表达式,“值列表”由一个或者若干项构成,各项之间用逗号分隔,每项可以是一个与选择表达式具有相同数据类型的常量或表达式。“语句”可以是单个语句或复合语句。,Select(month); when(Feb,Mar,Apr) put spring; when(May,Jun,Jul) put summ

22、er; otherwise put autumn or winter; End;,Select; when(age=12) put 少年; when(age35) put 青年; otherwise put 中老年; End;,6. 循环语句 SAS提供三种循环控制结构语句:DO循环、DO WHILE循环和DO UNTIL循环。 1)DO循环(又称为计数DO循环) 语法格式: DO 计数变量 = 起始值 TO 结束值 BY 步长;循环体;END; 循环体由一个或多个程序语句构成。计数变量、起始值、结束值、步长应该是相同数据类型的变量。在一般情况下,当步长大于0时,起始值应小于结束值;当步长小于

23、0时,起始值应大于结束值。,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则不计算对数, 而直接考虑下一个值。,DO WHILE当型循环 DO WHILE 循环的语法结构: DO WHILE(循环继续条件) ;循环体语句;END; 循环继

24、续条件:逻辑表达式。 循环体语句:SAS程序语句组。语句功能:语句开始执行时,程序首先判断循环继续条件表达式计算结果是否为真,若计算结果为真,则执行循环体语句。循环体语句每执行一次,则再检验循环继续条件表达式一次,如此重复,直到循环继续条件表达式计算结果为假,循环结束。,判断1333333是不是素数,Data; x=1333333; i=3; Do while (mod(x,i)=0); i=i+2; End; if ix then put x is not a prime number; else put x is a prime number; run;,3)DO UNTIL直到型循环 D

25、O UNTIL循环语法结构: DO UNTIL (循环退出条件) ;循环体语句;END;循环退出条件:逻辑表达式。循环体语句:SAS程序语句组。语句功能:语句开始执行,首先执行循环体,循环体每执行一次,判断一次循环退出条件表达式是否为真,当表达式计算结果为真时结束循环,否则重复执行循环体语句并判断循环结束条件表达式,直到表达式计算结果为真为止。,Data; n=0; do until (n=5); n=n+1; put n=; end; Run;,7. 常用函数,1) 算术函数(Arithmetic Functions) ABS(x) :求x的绝对值。 例如ABS(-56.3)=56.3 。

26、MAX(x1,x2,xn) :求所有自变量中的最大一个。 例如MAX(52,15,67,89)=89 。 MIN(x1,x2,xn) :求所有自变量中的最小一个。例如MIN(52,15,67,89)=15 。 MOD(x,y) :求x除以y的余数。 例如MOD(24,3)=0 。 SIGN(x) :计算x的符号,结果为1、-1、0。例如SIGN(-5)=-1,SIGN(20)=1, SIGN(0)=0。 SQRT(x) :求x的平方根。 例如SQRT(225)=15 。,方法2: 可以先将原始数据输入到Excel文件中,Excel表中第一行为变量名(变量名不能使用汉字);第二行开始输入数据,然

27、后保存文件并关闭该文件。注意文件名也不能使用汉字。 使用SAS系统主菜单Import Data命令,按照1.4节中的操作将Excel数据文件导入生成SAS数据集。 如果生成的SAS数据集名为CCC.studen,可以在EDITOR窗口中输入以下语句: proc print data=CCC.student; run; 然后点击Submit按钮执行该过程,在OUTPUT窗口 中将输出该数据集内容。,选择变量,Data class3 (drop=test1 test2 test3 test4); Set class2; Run; Data class3 (keep=id average total

28、); Set class2; Run;,选择观测,Data a ; Set vital (firstobs=12 obs=53 keep= country birth); Run;,定义数组,数值型数组 Array tests(3) math chinese english (0,0,0); Array table(2,2) x11 x12 x21 x22; 二维数组元素按行排列 字符型数组 Array names(3) $10 child father mother;,SAS数据集建立-用input和cards语句直接输入,data child; /*建立临时数据集child.sd2,自动放

29、在saswork子目录下*/ input id x1 $ x2 x3 x4 x5 x6; /* 指明要输入的变量 , $为字符型变量*/ cards; /*标志数据区开始,数据之间以一个或几个空格分隔*/ 1 m 32 95.5 14.0 53.5 49.64 2 m 35 92.0 13.0 52.0 41.61 3 m 33 89.0 12.5 53.5 35.81 254 m 176 168.0 53.5 82.0 100.14 255 f 30 91.0 11.0 48.0 35.39 256 f 33 91.0 11.5 47.0 44.98 521 f 178 163.0 51.0

30、 79.0 87.42 ; /* 标志数据区结束,分号必须单独一行 */ run;,SAS中的常用变量类型 数值型:不需特殊定义 字符型: 定义方式 变量名 $ 日期型:多种形式如: 变量名 mmddyy6. 实际记录为距1960/01/01的天数 其它数据库中的逻辑型、备注型变量在SAS中均为字符型变量。日期型变量转进SAS后一般也变为字符型变量。,SAS数据集建立-用input和cards语句直接输入,data a1; input id x1 $ x2 x3 x4; cards; 1 m 32 95.5 2 m 35 92.0 13.0 3 m 33 89.0 12.5 ; proc pr

31、int; run; 结果: OBS ID X1 X2 X3 X4 1 1 m 32 95.5 2.0 2 3 m 33 89.0 12.5,data a1; input id x1 $ x2 x3; cards; 1 m 32 95.5 2 m 35 92.0 13.0 3 m 33 89.0 12.5 ; proc print; run; 结果: OBS ID X1 X2 X3 1 1 m 32 95.5 2 2 m 35 92.0 3 3 m 33 89.0,SAS数据集建立,不分行符的使用 data esr; input x ; /*每读入一天记录后,数据指针保持原位不换行, 继续读下一

32、条记录*/ cards; 3 9 8 6 5 5 7 3 10 8 10 4 ; proc means; run; 结果: Analysis Variable : X N Mean Std Dev Minimum Maximum - 12 6.5000000 2.5405797 3.0000000 10.0000000 -,SAS数据集建立,缺失值的输入- 以 . 表示,缺失值不进入分析 data child; input id x1 $ x2 x3 x4 x5 x6; cards; 1 m 32 95.5 14.0 53.5 49.64 2 m 35 . 13.0 52.0 41.61 3

33、m 33 89.0 12.5 53.5 35.81 254 m 176 168.0 53.5 82.0 100.14 255 f 30 91.0 11.0 48.0 35.39 256 f 33 91.0 11.5 47.0 44.98 521 f 178 163.0 51.0 79.0 87.42 ; proc means; run;,SAS数据集建立,结果 Variable N Mean Std Dev Minimum Maximum - ID 7 184.5714286 194.9639771 1.0000000 521.0000000 X2 7 73.8571429 70.477960

34、1 30.0000000 178.0000000 X3 6 116.2500000 38.2410120 89.0000000 168.0000000 X4 7 23.7857143 19.4825930 11.0000000 53.5000000 X5 7 59.2857143 14.7361719 47.0000000 82.0000000 X6 7 56.4271429 26.2540446 35.3900000 100.1400000 -,SAS数据集建立,如已存在一纯文本文件c:child.txt,内容如下: 1 m 32 95.5 14.0 53.5 49.64 2 m 35 92

35、.0 13.0 52.0 41.61 3 m 33 89.0 12.5 53.5 35.81 254 m 176 168.0 53.5 82.0 100.14 255 f 30 91.0 11.0 48.0 35.39 256 f 33 91.0 11.5 47.0 44.98 521 f 178 163.0 51.0 79.0 87.42 可用infile 直接读入: Data child; Infile c:child.txt; Input id x1 $ x2 x3 x4 x5 x6; Run;,SAS数据集建立-Infile 和 input语句,利用file下拉菜单中的import功能

36、 ,可转入: 文本型数据:空格分隔、逗号分隔、制表键分隔 Dbase II 和 III数据库(*.dbf) Excel数据库(7.0版及以下,*.xls)。SAS8以上可转入Excel97及2000的数据库 Epi Info的数据可在Epi Info中用export模块转成*.sas文件(SAS的程序文件),在edit窗打开后,加上run;语句后提交运行即可。 有的数据可通过粘贴的方法贴到edit窗后,加入input和cards等语句,生成sas数据集。,SAS数据集建立-从其他数据集转入,SAS数据集名称的表示方式:两级文件名 库关联名. 数据集名 如 work.esr ,dw.esr(.s

37、d2 省略) 库关联名代表硬盘上某一(子)目录,esr即放在该目录下 定义库关联名:用 libname 命令 格式:libname 库关联名 “ 盘符:路径”; 如: libname dw c:teach; dw 为库关联名,代表路径c:teach; 库关联名可任意取,一旦定义,只要不退出SAS,始终有效()。但路径必须实际存在,SAS数据集建立-永久数据集和临时数据集,临时数据集: 每次启动SAS时,会自动开辟一个临时存储区,用于存储data步或其它过程生成的SAS数据集。它库关联名为WORK,代表sassaswork子目录。 一旦退出sas,临时存储区自动删除,存放在其中的数据集也会被自动

38、删除。即的sassaswork子目录下的数据集被删除,称为临时数据集 临时数据集的库关联名默认为work,均省略不写。 如 data esr; (实际为work.esr),SAS数据集建立-永久数据集和临时数据集,永久数据集: 通过两级文件名的形式,将生成的数据集存放到saswork 以外的任意路径中(库关联名所指向的路径),即可以生成永久数据集,退出时不会被删除。 如:libname dw c:teach; data dw.esr; /*在c:teach 生成esr .sd2数据集*/ input x1 x2 x3 ; (略) 退出SAS后再进入: libname aa c:teach; 库

39、关联名一旦定义 ,它所代表的目录下所有SAS数据集均可使用,不必再定义。,SAS数据集建立-永久数据集和临时数据集,SAS数据集建立-永久数据集和临时数据集,LIBNAME DS C:/DATA; PROC CHART DATA=DS.AA; VBAR EXCHANGE; TITLE 成交金额数据的缺省条形图; RUN; 注:Proc 步的操作对象总是最新生成的SAS数据集。只有proc步时,也可通过在proc语句后加data=来指定要分析的数据集。,data a; set DS.AA; proc print; run; Data b; Set a; Run;,从已建立的SAS数据集中读入数据

40、建立新的SAS数据集-set命令,变量重命名: rename 旧变量名=新变量名; 如 rename id=x0; 变量赋值或修改变量值: 变量名=表达式; 或结合if语句进行条件赋值: if then ; else ; 子集化:用keep或drop语句整理变量名表 keep ; drop ;,SAS数据集的整理-变量操作,data b1; set child; if id200 then group=1; else group=2; rename id=x0; keep id x1 x2 group; proc print; run; 注:keep id x1 x2 group 等价于 drop x3-x6;,OBS X0 X1 X2 GROUP 1 1 m 32 1 2 2 m 35 1 3 3 m 33 1 4 254 m 176 2 5 255 f 30 2 6 256 f 33 2 7 521 f 178 2,SAS数据集的整理-变量操作(例),数据子集化 记录输出 if then output 数据集; 记录删除 if the

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论