SAS基础教程摘录

一 简介
1.命令
keys  快捷键
include 'filename' 引入指定文件
libname 确认数据库内容
recall 调出上次执行的程序
submit 提交 F3

二 SAS数据管理

1.指定SAS库标记
libname course 'f:/course';

2.两级名
库标记.filename

三 原始文件转换成数据集

数据步 data 过程步 proc

1.数据步 data
  infile '文件名';(若需直接嵌数据,用cards代替)
  input ...;(读入模式:

column,formatted,list,named)
  两阶段——
  1)编译  PDV存放当前观测
  2)执行
 
2.column模式(适合固定列、标准字符数字)
  input 变量名1 $1-12 变量名2 $4-18
  $:变量为字符型

3.formatted模式
  input @n/+n 变量名 informat ...;
  输入指针控制符:@n(移到第n列)/+n(后移n列)

4.SAS日期
  MMDDYYw.
  DDMMYYw.
  DATEw.
  ...

5.firstobs=和obs=选项
  选择记录段

四 建立、浏览、编辑数据集

1.字符:<=200(以ASCII码存放)
  数字:8字节(以浮点数存放)

2.输入informat
  输出format

3.建立
  proc fsedit new=数据集名;
  end;进fsedit窗口(add添加记录;end存盘;cancel退

出)

4.修改
  proc fsedit data=数据集名;
  可以用where获得数据集的子集;delete删除

5.浏览
  proc fsview data=数据集名;
  drop命令去掉不需要显示的变量;where用上;where undo取消

6.viewtable
  表编辑器
   

五 增删改数据集的记录或变量

1.赋值语句
variable=表达式;
注:  ** 幂运算 rasise=x**y;
     || 字符串拼接 str=str1+str2;

2.SAS函数
function-name(参数1,参数2,...)

total=board+trans+nonrev;
total=sum(board,trans,nonrev);
区别:若一项参数为空,sum()仍可计算,total不然

3.条件转移语句
if ...  then [do; .. end;]
[else [do; .. end;]]

注:dest='DFW'中变量名DFW大小写敏感
可由upcase(argument)函数解决
如:upcase(dest)='DFW'

4.length语句
length variable(s) $length;

5.drop=和keep=选项选择变量
  删除   保留

6.if语句选择观测
  如:if total > 175;

7.delete语句(不常用)
  if ... then delete;

8.SAS日期常数和日期函数
  常数: 'ddMMMyy'D
  函数: year(date);...

9.set语句
  SET a;
  可从已存在数据集(old)中创建数据集
  DATA new|old;
 SET old;
 其他SAS语句;
  run;


六 合并与拼接

1.SET语句拼接数据集
DATA c;
 SET a b..;
run;
若有不同变量名,则相应空缺

2.rename=选项
  重命名变量
set a b(rename=(old=new));

3.排序
proc sort data=a out=b;
 by 变量名;
run;

4.合并
data a;
 merge b c..;
by 变量名列;
run;

5.in=选项
a(in=0);观测不是来自数据集a
a(in=1);观测来自数据集a
_N_是执行数据步时自动产生的变量,循环执行次数的计数

6.rename=选项
也在变量名不同时用于重命名

七 制作报表报告

1.产生简单列表
proc print data=a;
run;
若省去data=a则显示最近的数据集

2.noobs选项
  print过程中去掉obs列

3.var语句
控制变量出现与否及顺序

4.选择数据集观测
where
  ---between-and
  ---contains

5.sum a b;
计总和(列)

6.数据分组和小计(按变量x分组)
proc sort data=a out= b;
by x..;
proc print data=c;
 id m..;
 var y..;
 sum n..;
 by x..;
run;

7.id语句
对报表修改

8.按组分页
pageby x;

9.标题/脚注
titlen 'hello';
footnoten 'hello';

10.label标签
label x=''
      y=''
      ...

11.split控制表头分割
split='*'(*为分割符)

12.format输出格式
format x date7. y dollar10;

13.定义用户化格式
proc format;
 var $destfmt 'LON'='london'...;

14.SAS系统选项
options

15.类变量,分析变量?p96

16.tabulate过程
proc tableulate data=a;
 class x;
 var y;
 table 页,行,列;
run;

n为频数

17.table语句
操作符控制表格格式
符号  作用
逗号, 转另一维
空格  表格连排
星号* 交叉组合分组

如: table a,b,c; 三维表(页/行/列)

18.控制表格形状
tabulate的 format= 每格宽度
table的 rts= 第1列宽度

19.选择需要观测
where x in('m','n');

20.var定义分析变量后,默认为sum

21.为表格加标签
keylabel x='label';
注:label<40,tabulate自动生成,无需label或split=

八 SAS中使用sql

表--SAS数据文件--文件
行--观测--记录
列--变量--域

九 SAS宏

系统信息
条件执行数据步/过程步
开发交互系统(%windows语句)
产生与数据无关程序
不同数据/过程步间传递数据

1.%let语句
定义宏变量
%LET 宏变量=x;

2.symput函数
传递数据
call symput(a,b);
a:将要定义的
b:宏变量值

若字符串含引号 则用双引

3.SAS宏调用
定义:
%macro name(传递调用的变量,...);
 调用实体
%mend name;
引用:
%name(参数);


 

 

 

你可能感兴趣的:(SAS基础教程摘录)