SAS课件讲义

  • 格式:doc
  • 大小:333.00 KB
  • 文档页数:26

-

- ★ 第一章:SAS系统简介

SAS文件及命名

1、SAS数据集文件(后缀为sas7bdat)

2、SAS程序文件(后缀为sas)

3、SAS日志文件(后缀为log)

4、SAS输出文件(后缀为list)

★ 第二章:SAS数据集的分类

临时数据集和永久数据集

(一)临时数据集存放在work数据库中

(二)永久数据集存放在永久数据库中,除了work数据库之外,其他的数据库都是永久数据库。

1、SAS文件的2级命名方式:目录.文件名

2、使用Libname语句创建永久数据集,

libname 自建目录名 ‘目录地址’;

Libname例

创建与读取永久数据库

1、创建永久数据集 永久数据集的扩展名是sas7bdat。 libname例 :

libname sasroom "d:\sasdata";

data sasroom.data1;

input y $ x1 x2 x3@@;

cards;

run;

proc print;

run;

2、读取永久数据集 read例

libname sasroom "d:\sasdata";

data sasroom.data1;

input y $ x1 x2 x3@@;

cards;

run;

建立SAS数据集的5种方法

1、用data步输入数据建立。newdata例

data newdata;

input group $ x1 x2 x3;

cards;

2、利用infile语句从外部调入数据文件建立SAS数据集,注意:infile语句必须放在input语句的前面。 (Infile例) -

- (Infile例)

data newdata2;

infile "d:\sasdata1.txt";

input group $ x1 x2 x3;

run;

proc print data=newdata2;

title "数据";

run; (Set1例)

data newdata;

set sasuser.air;

run;

proc print data=newdata;

run;

3、利用“导入数据”功能建立。(Excel例)

4、利用EFI(external file interface)功能导入(classifydata例)。

5、data步利用set 语句建立。(Set1例)

查看SAS数据集的内容

1、使用contents过程查看数据的相关信息。Contents例

proc contents data=数据集名 position;

2、用print过程来显示数据。

Contents例

proc contents data=sasuser.air position;

run;

SAS数据集的加工

一、两个SAS数据集的合并

1、两个SAS数据集的串接(set语句);set2例

2、两个SAS数据集的并接(merge语句).

二、变量值的排序(sort语句) sort例

三、对变量的选择(drop语句和keep语句)。 Drop1,2例、keep例

set2例

proc print data=sjk.newdata;

run; sort例

proc sort data=sjk.dqgz out=sjk.outdata;

by sum;

proc print data=sjk.outdata;

run;

Drop1,2例

1.data dqgz_drop;

set sjk.dqgz;

drop x1 x2;

run;

proc print data=dqgz_drop;

run;

2.proc print data=sjk.dqgz(drop=x1 x2);

run; keep例

data dqgz_keep;

set sjk.dqgz;

keep d x3 x4 x5;

run;

proc print;

run;

四、对观测的选择。例子:obs1、obs2、obs_if、obs_if_then、obs_where。

五、产生新变量及其观测值,利用赋值语句:variable=表达式; 例子:new_variable

obs1

data class_obs;

set sasuser.class (firstobs=3

obs=10); obs2

data a2;

set sasuser.fitness (keep=age weight

runtime firstobs=2 obs=15); -

- run;

proc print;

run; proc print data=a2;

run;

obs_if

data a3;

set sasuser.fitness;

if group='1';

proc print data=a3;

run; obs_if_then

data a4;

set sasuser.fitness;

if group='1' then delete;

proc print data=a4;

run;

obs_where

data a5;

set sasuser.fitness;

where=(group='2');

proc print data=a5;

run; new_variable

data a6;

set sasuser.fitness;

x=log(weight);

y=runtime*10;

proc print data=a6; run;

SAS运算符

数学运算符: + - * / **(幂运算)

比较运算符:=(EQ) ^=(NE) >(GT) <(LT) >=(GE) <=(LE) in

逻辑运算符:&(AND) | (OR) ^(Not)

其它:><(最小值) < >(最大值) || (连接)