《数据分析实务与案例》 实验教学练习手册
管理科学与工程学院
实验一 SAS基本操作与数据集建立、浏览
?实验目的?
掌握启动SAS的方法,熟悉常用的操作界面;理解SAS数据库、临时|永久数据集等基本概念,熟练掌握建立数据集、浏览编辑数据集的基本使用方法。
?实验内容?
? 实验项目1
输入下列程序,运行并保存在恰当的文件夹中: data tmp;
input name$ birthday date9. score1 score2 score3 wage comma8.2 percent; cards;
zhangsanfen 02-oct-76 78 81 65 1,256.12 0.21 lisi 18-jan-75 74 93 65 1,080.5 0.15 wangwu 14,feb,74 88 90 95 2,040. 0.3 xuliu 30/jun/77 75 89 69 980.38 0.12 proc print;
format birthday monyy7. wage dollar4.2; run;
上述程序建立了一个含有姓名、生日、项目1~3的考核分、工资、加薪比率这些字段的临时数据集tmp。
〖实验指导〗 ★有关知识★
SAS主界面中有几个常用的工作窗口:?编辑窗口?用于录入、编辑程序;?日志窗口?用于显示SAS系统运行信息;?输出窗口?用于显示运行SAS程序产生的文字输出结果;……。
SAS主界面上有几个常用的菜单:有关文件操作的功能都组织在?文件菜单?中,SAS程序的提交运行、已运行过程序在编辑窗口的重新显示等功能组织在?运行菜单?中;……。
? 实验项目2。
试用编程方法和菜单|工具条方式分别建立用户数据库MyLib和MySas。 〖实验指导〗 ★有关知识★
SAS主界面中工具条上有?创建新的数据库?工具图标际文件夹之间关联以创建一个逻辑数据库。
用libname语句可以创建、取消逻辑数据库。LIBNAME语句的一般用法为:
libname 数据库名 [引擎] 库位臵; libname 数据库名 (库位臵1 库位臵2 …);
,用于指定?库标识?与实
库位臵通常是‘目录的全路径文件名’表示;引擎为读写数据的格式说明,如v8,v6,xport等。
? 实验项目3。
有10位同学的名字、年龄、体重、身高数据如下表所示; 试用多种手段将这些数据新建为一个存放在MyLib库下的health永久数据集。
health数据集的内容
Name Tom Mike Jack Brown Lucy Gup Lee Mary Kate Vencent 10 11 10 10 10 11 9 10 11 10 Age 40 42 46 41 39 38 46 39 37 40 Weight Height 165 160 162 172 155 166 182 159 155 160 将上述程序输入编辑窗口并运行,观
察输出结果和日志窗口中的内容。
〖实验指导〗 ★有关知识★
建立SAS数据集方法有两大类:一类是批处理式的,即用编程方法等建立数据集;另一类是交互式的,如在viewtable窗、Analyist、INSIGHT等窗口中,交互录入数据。
? 实验项目4。
记事本stock.txt中存放有code(证券代码)、name (证券名称)、scale (流通盘)、EPS (每股收益)、share (投资组合中所占份额)、price (价格)的数据(以空格分隔),将其读入到SAS 临时数据集stock中。
〖实验指导〗 ★有关知识★
SAS数据步编程的基本结构为:
结构1
结构2
data 数据集名; infile '文本格式数据的路径文件名'; input 变量名表; run; data 数据集名; input 变量名表; cards; 原始数据源 run;
input语句用于建立数据集的变量并从源数据中读入变量值;若建立的变量为字符型,则在变量名后带上美圆号$。
? 实验项目5
试着将SAS数据集stock中的数据导出到Excel 表格stock.xls中。 〖实验指导〗 ★有关知识★
在FILE菜单中的IMPORT DATA和EXPORT DATA子菜单可实现一些常见数据格式的数据文件与SAS数据集之间的转换。
实验练习二 通过编程建立SAS数据集(1)
?实验目的?
基本掌握编程建立SAS数据集的方法,熟练运用input语句的4种基本输入模式以及混合模式。
?实验内容?
? 实验项目1。
有一个文本格式数据文件ex21.dat,其每行数据中含有工号(id)占前5位、姓名(Name)从第7-14位、部门号(dep)占据第1-2位、体重 (weight)占据第16-19位,其部分数据如下:
13011 zhangsan 52.8 02021 wangwuzi 64.3 10005 xuxiake 55.0
试用列输入模式将其读入从而建立数据集dem21。 〖实验指导〗 ★有关知识★
对数据字段位臵固定的源数据,用input语句读入数据时,可按列模式输入,其一般形式为:
input 变量名1[$] 开始列数-结束列数 [变量名2 …];
? 实验项目2。
有一个文本格式数据文件ex22.dat,其内各行依次含有id (工号)、birthday (生日)、marryday (结婚纪念日)、salaray (薪水)四变量,其部分数据如下:
100 07:31:68 31jul98 $21,456.20 101 07/21/67 21jul97 $30,234.85 102 05-22-66 22may96 $15,876.
试用格式化输入模式将其读入从而建立数据集dem22。 〖实验指导〗 ★有关知识★
对数据字段位臵固定的源数据,也可以采用格式化的输入模式更灵活地建立SAS数据
集。一般形式:
input 指针控制 变量名 输入格式名 […];
适用范围:源文件中各变量所在位臵必须是规则的(字段宽度固定);可用指针控制变量读入的始点,终点由输入格式确定;每个变量按输入格式读入指定的长度;该模式特点与列模式基本类似,但可读入多种格式的数值字段,尤其在输入日期型数据时应使用该模式。
? 实验项目3。
有一个文本格式数据文件ex23.dat,其内各行依次含有id (学号)、name(姓名)、age (年龄)、score (成绩)四类数据,彼此间空格分隔,其部分数据如下:
021496001 张三丰 21 596 012256021 司马相如 22 612 991034099 王小二 25 498
试用列表输入模式将数据读入从而建立数据集dem23。 〖实验指导〗 ★有关知识★
对分隔符(通常为空格)固定的数据源,可以采用自由列表模式输入数据。一般形式为:
input 变量名[$] […]; /*变量长度默认8,超过会截断*/
其中,变量名指明数据集中要建立的变量,它们出现的顺序必须与数据源中的数据字段顺序匹配。
一般情况下,变量的长度默认为8个字节,这对字符型变量而言,只能存放8个字符(4个汉字)。length语句可改变变量的长度属性,一般形式为:
length 变量名表[$] 长度. ;
另外,为突破变量的默认长度限制,也可以在列表输入模式中还可以加入输入格式修饰说明,一般形式为:
input 变量名:[$] 输入格式. […];
? 实验项目4。
通过DATA步内编程来建立一个由姓名(name)、学号(id)、生日(birthday)、性别(sex)、总分(score)组成的SAS数据集,并输出数据集。原始数据(不能改变其格式)部分如下:
乔本鬼太狼 84/09/01 601.8 id=001 sex=男 龟田次一郎 82/12/23 588.7 id=002 sex=男 山本美智子 87/01/18 623.3 id=003 sex=女 张美萍 85/04/30 589.6 id=018 sex=女 王晓刚 84/09/11 578 id=021 sex=男 杨英 82/11/19 587.9 id=034 sex=女 〖实验指导〗 ★有关知识★