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)
其它:><(最小值) < >(最大值) || (连接)