SAS的基本应用

关于SAS的基本应用

不同版本的SAS,使用规则会有所不同

定义逻辑库 data (链接d盘的data文件夹下)

1
libname data 'D:DATA\';

删除逻辑库 Data

1
libname data clear;

变量的命名

最多32个字符长,第一个字符必须是字母或下划线,不能有空格。不能包含特殊字符(如¥,@,#)

SAS运算符:

不等于: ~=、 <>、ne
等于: eq、=
大于等于:>=、ge
小于等于:<=、le
大于:>、gt
小于:<、lt
逻辑运算符:&、| ~
连接符:||

设置当前逻辑库

1
options user=data;

数据步

一般形式:

1
2
3
4
DATA 数据集;
语句;
......
RUN;

过程步

一般形式

1
2
3
4
5
proc 过程名 DATA=分析数据集 [选项];
过程语句 / [选项]
过程语句 / [选项]
......
run;

控制语句

1
2
3
4
5
6
7
8
9
if 条件 then 语句; else 语句;

do 变量=初值 to 终值 by 步长;
语句;
end;

do while (条件); 或者 do until (条件);
语句;
end;

对表格进行排序

1
2
3
4
5
6
7
8
9
降序排列
proc sort data = student;
by descending age;
run;

升序排列
proc sort data=student;
by no;
run;

数据合并

纵向合并或数据集复制

1
2
3
data table;
set table1 table2;
run;

横向合并(先对要合并的数据集按相同的变量排序)

1
2
3
4
data table;
merge table1 table2;
by no;
run;

如果table1与 table2的变量不完全相同,需要在结果中只包含共同的变量:

1
2
3
4
5
6
7
8
9
data table; 
set table1(keep=保留变量名列表)
table2 (keep=保留变量名列表);
run;
或:
data table;
set table1(drop=去除变量名列表)
table2 (drop=去除变量名列表);
run;

如果需要在结果中只包含部分观测:

1
2
3
4
data table; 
set table1(where=(条件))
table2 (where=(条件));
run;

利用SQL过程实现数据预处理

1
2
3
4
5
6
7
8
proc sql;
create table …;
alter table … add|drop|modify…;
update … set …;
insert into …..;
delete from … where …;
seclet …;
quit;

数据导入

1
2
3
4
5
6
proc import out = data.table
dtafile='d:\data\table.xls'
dbms=excel replace;
sheet='sheet1$';
getname=yes;
run;

数据集导出

1
2
3
4
5
proc export data=table
outfile='d:\data\table1.xls'
dbms=excel replace;
sheet='table1';
run;

统计值

1
2
3
proc freq data=table;
table age;
run;