目录
SAS 数据集操作
2014年03月28日
1.合并
2.删选,修改
3.查询
PPT 模板下载:/moban/
1
数据集的合并:
(1)纵向合并:添加或合并样本变量
(2)横向合并:添加或合并(指标)变量
(1)数据集纵向合并:可以添加或合并样本变量
形式:
data 合并后数据名;
set 数据名1 数据名2 ;
run;
例:将名为male、female 的两个数据集纵向合并成一个名为total 的数据集data total;
set male female;
proc print data=total;
run;
/*若male 与female 变量名不同则total 的变量名为两者之并,数据值以缺失值形式出现*/
(2)数据集横向合并:添加或合并(指标)变量
形式:
data 合并后数据名;
merge 数据名1 数据名2 ;
by 共有变量名;
run;
例:将名为dataONE 和data TWO 的两个数据集按共有变量pid 横向合并成数据集total2
(以下程序以data total2 名义保存)
data one;
input pid sex$ age; cards;
101 m 54
105 w 36
102 m 43
104 w 45
;
data two;
input pid weight height; cards;
105 54 163
102 63 174
103 57 173
104 45 156
;
proc sort data=one;/*必须先对共有变量(本例中pid)分别排序才能横向合并*/
by pid; /* 排序语句proc sort data=被排序变量所在数据集名; by 被排序变量名;排序时默认数值由小到大字母由先而后*/
proc sort data=two; /*必须先对共有变量(本例中pid)分别排序才能横向合并*/
by pid;
/*以下为合并过程*/
data total2; /*合并后数据名*/
merge one two; /*形式: merge 被合并数据集名1 被合并数据集名2; */
注意输出结果中的缺省值,输入数据时若有缺省分量一定要以. 表示,否则SAS 会将该行数据自行删除*/
by pid;
proc print data=total2;
run;
2(1)数据集的数据的删选拆分
if…then output 选择(或delete 删除)(else output…)例:数据表E25
data E26;
set E25;/* 注: 调用sas 数据集中数据E25*/
if sex=’m’then output;/*等同于if sex=’w’then delete;*/
proc print data=E26;
run;
/*若要拆分成名为male、female 的两个数据集则可用以下方法*/
data male female;
set E25;
if sex=’m’then output male;
else output female;
proc print data=male female; /*在output 窗口输出名为male、female 的两.个.数据集*/
run;
经数据删选得数据表E26
经数据分拆得数据表male 与female
(2)数据集的复制与修改例:C9501.XLS
①数据集复制
②修改
③用UPDATE 语句更新数据集
例:UPDATE 语句更新数据集
3运用PROC SQL 查询数据
用PROC SQL最简单的用法如下:
PROC SQL;
SELECT 第一项,第二项,......,第n项
FROM 数据集
WHERE 观测选择条件
RUN;
按观测条件查询:
查询结果排序:
联合查询:
查询结果转存:
THANK YOU
2014年03月27日
徐洋东。