SAS数据集操作
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
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 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;
RUN;
按观测条件查询:
查询结果排序:
联合查询:
查询结果转存:
THANK YOU
2014年03月27日 徐洋东
(2)数据集横向合并:添加或合并(指标)变量
形式:
data 合并后数据名; merge 数据名1 数据名2 ; by 共有变量名; run;
例:将名为 dataONE 和 data TWO 的两个数据集按共有变量pid 横向合并成数据集 total2 (以下程序以data total2 名义保存)
SAS数据集操作
2014年03月28日
目 录
1.合并 2.删选,修改 3.查询
PPT模板下载:www.1ppt.com/moban/
1
数据集的合并:
(1)纵向合并:添加或合并样本变量
(2)横向合并:添加或合并(指标)变量
(1)数据集纵向合并 :可以添加或合并样本变量
形式: data 合并后数据名; set 数据名1 数据名2 ; 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;
by pid; /*以下为合并过程*/ data total2; /*合并后数据名*/ merge one two; /*形式: merge 被合并数据集名1 被合并数据集名2; */ 注意输出结果中的缺省值,输入数据时若有缺省分量一定要以 . 表示,否则SAS 会 将该行数据自行删除*/
by pid;
proc sort data=one; /*必须先对共有变量(本例中pid)分别排序才能横向合并*/ by pid; /* 排序语句proc sort data=被排序变量所在数据集名; by 被排序变量名; 排序时默认数值由小到大字母由先而后*/ proc sort data=two; /*必须先对共有变量(本例中pid)分别排序才能横向合并*/
经数据删选得数据表E26 经数据分拆得数据表male 与female
(2)数据集的复制与修改
例:C9501.XLS
①数据集复制
②修改
③用 UPDATE 语句更新数据集
例:UPDATE 语句更新数据集
3 运用 PROC SQL 查询数据 用PROC SQL最简单的用法如下:
PROC SQL; SELECT 第一项,第二项,......,第n项 FROM 数据集 WHERE 观测选择条件
例:将名为male、female 的两个数据集纵向合并成一个名为total 的数据集 data total; set male female; proc print data=total; run; /*若male 与f源自文库male 变量名不同则total 的变量名为两者之并,数据值以缺失值形 式出现*/