华院分析内部参考资料 (SAS编程) Copyright © 2007 by HuaAT Confidential Page 1 of 8 SAS 编程中SET 命令的常用用法 By 木杉 2007/5/22 一、 读入数据集: 从现有的数据集读入数据(obs) ,下例中set 将 work.a 的所有记录写入 work.new ;其作用相当于复制数据集 a: data new ; set a ; run; 二、 合并数据集 : 1、一个 set 的应用,纵向合并数据集 : a) 2 个数据集的字段完全相同的情况下: 数据集 a: 数据集 b: data new1 ; set a b ; by custid; run; 运行结果:数据集 new 1 b) 2 个数据集的字段不完全相同的情况下: 华院分析内部参考资料 (SAS编程) Copyright © 2007 by HuaAT Confidential Page 2 of 8 数据集a: 数据集b: data new2 ; set a b ; by custid; run; 运行结果:数据集new 2 c) 2 个数据集的字段完全不同的情况下: 数据集a: 数据集b: data new3 ; set a b ; run; 运行结果:数据集new 3 华院分析内部参考资料 (SAS编程) Copyright © 2007 by HuaAT Confidential Page 3 of 8 2、两个 set 的应用:用 2 个 set 进行数据集的拼接时,新生产数据集(new )的记录条数为 2 个数据集的最小值; a) 当 2 个数据集的字段都不相同情况下: 新生产的数据集包含 2 个 set 数据集的所有变量,第 2 个 set 数据集(b)的变量排在第 1 个数据集(a)的右边,如下例: 数据集 a: 数据集 b: data new; set a; set b; run; 运行结果:数据集 new b) 当 2 个数据集有相同字段(custid)情况下: 第 2 个数据集(b)custid 的值覆盖第 1 个数据集(a)custid 的值,新生产数据集 new2一共包含 2 条记录,如下例: 数据集 a: 数据集 b: data new2; set a; set b; run; 运行结果:数据集 new 2 华院分析内部参考资料 (SAS编程) Copyright © 2007 by HuaAT Confidential Page 4 of 8 三、 Set命令的常用 options : 程序举例使用数据集: Data work.bbb; Input custid brand fee; Cards; 1000123 1 300 1000124 2 200 1000134 3 500 1000139 2 100 1000213 3 200 ; Run; 运行结果: Data work.ccc; Input custid brand fee ; Cards; 1000126 1 900 1000125 2 800 1000127 1...