查看文章
 
转SAS基础教程摘录
2007-11-17 8:41

一 简介
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||添加到搜藏 |分享到i贴吧|浏览(634)|评论 (0)
 
最近读者:
 
网友评论:
发表评论:
姓 名:
网址或邮箱: (选填)
内 容:
     

   
帮助中心 | 空间客服 | 投诉中心 | 空间协议
©2012 Baidu