SAS编程基础.doc
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
SAS 软件与统计应用实验
实验 2 SAS编程基础
SAS 语言和其它计算机语言一样,也有其专有的词汇(即关键字)和语法。关键字、名
字、特殊字符和运算符等按照语法规则排列组成SAS 语句,一个SAS 程序由若干数据步、过程步组合而成,而每一个程序步通常由若干语句构成。SAS 程序是在Editor 窗口中进行编辑,提交运行后可以在Log 窗口中显示有关信息和提示,在Output 窗口显示运行的结果。
2.1实验目的
通过实验了解 SAS 编程的基本概念,掌握 SAS 编程的基本方法,掌握 SAS 数据步对数据集的管理和对数据的预处理。
2.2实验内容
一、建立逻辑库与数据集,包括逻辑库的建立、直接输入数据建立数据集与读取外部数
据文件建立数据集。
二、数据文件的编辑与整理,包括数据集的横向合并与纵向合并、数据集内容的复制、
变量的增加与筛选、数据集的拆分和数据的排序。
2.3实验指导
一、建立逻辑库与数据集
1. 建立逻辑库
【实验 2-1】编程建立逻辑库。
(1) 首先在 D 盘创建一个文件夹,如D:\SAS_SHYAN\SAS 数据集。
(2)建立逻辑库 mylib ,编辑并运行下面程序语句即可。
libname mylib "D:\sas_shiyan\sas 数据集 ";
2.直接输入数据建立数据集
【实验 2-2】将表 2-1(sy2_2.xls) 中的数据直接输入建立数据集 sy2_2,并将其存入逻辑库 mylib 中。
表 2-1职工工资
编号姓名性别工作日期职称部门基本工资工龄工资奖金扣款实发工资3003王以平男1992-8-1助工生产62030050001420
1
3004 林红女1993-8-1 助工供销620 280 500 200 1200
3005 吕兴良男1982-1-30 工程师技术1100 500 500 100 2000
3006 司马宇男1971-2-17 工人生产520 720 500 0 1740
3007 张学武男1967-10-9 工人保卫520 800 500 200 1620
3008 冯玉霞女1987-8-1 工程师生产1100 400 500 250 1750
3009 赵大强男1968-5-10 工人财务520 780 500 0 1800
3010 王萍女1987-8-1 工程师技术1100 400 500 100 1900
代码如下:
data mylib.sy2_2;
length gzrq $ 10;
input bh $ xm $ xb $ gzrq $ zc $ bm $ jbgz glgz jj kk sfgz;
label bh=' 编号 ' xm=' 姓名 ' xb=' 性别 ' gzrq=' 工作日期 ' zc=' 职称 ' bm=' 部门 '
jbgz=' 基本工资 ' glgz=' 工龄工资 ' jj=' 奖金 ' kk=' 扣款 ' sfgz=' 实发工资 ';
cards;
3003 王以平男 1992-8-1 助工生产620 300 500 0 1420
3004 林红女 1993-8-1 助工供销620 280 500 200 1200
3005 吕兴良男 1982-1-30 工程师技术1100 500 500 100 2000
3006 司马宇男 1971-2-17 工人生产520 720 500 0 1740
3007 张学武男 1967-10-9 工人保卫520 800 500 200 1620
3008 冯玉霞女 1987-8-1 工程师生产1100 400 500 250 1750
3009 赵大强男 1968-5-10 工人财务520 780 500 0 1800
3010 王萍女 1987-8-1 工程师技术1100 400 500 100 1900
;
RUN;
运行完成后,在逻辑库mylib 中双击数据集名sy2_2,可以查看结果如图2-1 所示:
图2-1 数据集 mylib.sy2_2
说明:
(1) SAS变量的基本类型有两种:数值型和字符型。数值型变量在数据集中的存贮一般
使用 8 个字节。 SAS 的字符型变量缺省的长度是8 个英文字符,可以使用LENGTH语句指定变量长度,LENGTH语句一般应出现在定义变量的Input 语句之前,格式为:LENGTH 字符型变量名$长度;
如:
LENGTH gzrq $ 10;
(2)语句:
2
label bh = '编号 ' xm = '姓名 ' xb = '性别 ' gzrq = ' 工作日期 ' zc = ' 职称 ' bm = '部门 ' jbgz = ' 基本工资 ' glgz = ' 工龄工资 ' jj = '奖金 ' kk = '扣款 ' sfgz = ' 实发工资 ';
为每个变量加标签。
(3)数据块中数据之间可以用空格隔开,也可以使用Tab 键。
3.读取外部数据文件建立数据集
【实验 2-3】读取文本文件sy2_3.txt (图 2-2)建立数据集work.sy2_3 。假设文本文件存
放在文件夹“原始数据”中。
图2-2 文本文件 sy2_3.txt
代码如下:
data sy2_3;
infile原始数据 \sy2_3.txt';
input bh$ xm $ xb$@@;
length gzrq$ 10;
input gzrq$ zc $ bm $ jbgz glgz jj kk sfgz;
run;
注意:文本文件中数据之间用空格隔开,不能使用Tab 键。
运行完成后,在临时库work 中双击数据集名 sy2_3 ,可以查看结果如图2-3 所示:
图 2-3数据集sy2_3
【实验 2-4】读取 Excel 文件 sy2_2.xls(如表 2-1 所示)建立数据集work.sy2_4 。已知 Excel 文件 sy2_2.xls 存放在文件夹“原始数据”中。
首先将表2-1 修改为如图2-4 所示的 Excel 表 sy2_4.xls, 并存放在原始数据中。
3