第五篇[SAS文件操作].docVIP

  • 23
  • 0
  • 约1.43万字
  • 约 14页
  • 2017-06-03 发布于湖北
  • 举报
第五章 SAS文件操作 第一节 建立永久数据集 每次启动SAS系统后,SAS都要在硬盘上开辟一个临时存储区,称为WORK。可利用DATA步将数据读入SAS系统存在悔时存储区中建起临时数据集。SAS自动在给定的数据集名前加上WORK.来命名。一旦退出SAS系统,临时集就被删除。 为了使建立的数据集能永久保存,就需要指定数据集存储的地方,给出路径,比如磁盘标号及子目录名。这要由两个语句来实现: 5.1.1 LIBNAME语句 在SAS数据集名称中不能使用真实的路径,必须用LIBNAME语句给路径名起个别名(称为库逻辑名)。如想把数据集存在B盘上,则可用: LIBNAME LB ‘B:’; 即给B盘起一库逻辑名LB(库逻辑名是由使用者任意起的)。也就是说LB代替了B:。注意路径要用引号括起。 语句格式为: LIBNAME 库逻辑名‘路径’; 库逻辑名和路径的联系一直在起作用,直至用另一个LIBNAME语句改变这种联系或是会话结束。一旦在一个LIBNAME语句中确定了路径,就可以读取或建立一个永久的SAS文件。 5.1.2 DATA语句 为建立起永久数据集,必须在DATA语句中利用二级名命名数据集,例如: DATA LB.A; 即在B盘上建立起名为A的永久数据集文件。为标识该文件是永久数据集,SAS系统自动在文件名后面加上.SSD后缀。例如: LIBNAME LB ‘B:’; DATA LB.AA; INPUT NAME $ SEX $ AGE H W @@; CARDS; ZHANGSAN M 18 1.78 76.5 LILI F 19 1.65 50 ZAOHUI M 20 1.72 68 ; LIBNAME语句将库逻辑名LB和磁盘名B:联系起来,然后在DATA语句中,LB被用作永久SAS数据集的第一级名。当这个程序执行时,SAS永久数据集AA.SSD被存于B:盘中。 在同一个LIBNAME语句中可定义多个路径。下面的DATA步从一个路径中读取一个永久的SAS数据集SCORE.SSD,并且在另一个路径中建立一个永久数据集STUTEST.SSD。用一个LIBNAME语句定义两个路径: LIBNAME SB B:,SA A:; DATA SB.STUTEST; SET SA.SCORE; KEFP NUM S1-S5; 一旦在磁盘上建立起了SAS永久数据集,今后再要处理这个数据集中的数据时,只要将该数据集磁盘所在的驱动器名及所在的子目录名再一次用LIBNAME语句加以定义就可直接处理数据集中的数据。例如: LIBNAME L B:; PROC PRINT DATA=L.AA; 就可将B盘上的AA.SSD永久集中的内容打印出来。 第二节 数据排序 在整理数据集时经常要对数据进行排序。比如,按成绩将学生成绩数据集中的数据进行排序。排序要调用SORT过程,用BY语句指明按哪一变量值进行排序。 例: 建立学生成绩数据集SCORE: (yp35.sas) DATA SCORE; INPUT CLAS NUM SEX $ S1-S3 @@; TOT=SUM(OF S1-S3); CARDS; 对SCORE集中数据按总成绩TOT值排序: PROC SORT; BY TOT; PROC PRINT; SORT过程所用的语句是: PROC SORT [选择项]; BY [DESCENDING] 变量 ...; 5.2.1 PROC SORT语句 该语句调用SORT过程,SORT过程按BY变量的值对数据集排序。如果要对非当前数据集进行排序,就要在PROC语句中用DATA指出要排序的数据集名。 排序后产生一新数据集,数据集名可在PROC SORT语句中用OUT=指出。若缺省,则排序后的输出数据集覆盖原始数据集。例如: PROC SORT DATA=SCORE OUT=CS1; BY CLAS; 对数据集SCORE按CLAS变量的值进行排序,结果存在CS1集中。 5.2.2 BY 语句 BY语句指出用以排序的变量名,数据集中各观测值是按BY变量值的升序排序的。如果需要按BY变量值降序排列,则在变量名前要用DESCENDING指出。如BY语句中给出多个变量,则先按前一变量值进行分组,在各组中再按后一变量值排序。例如: PROC SORT DATA=SCORE OUT=CS2;

文档评论(0)

1亿VIP精品文档

相关文档