版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、实验二SAS编程基础SAS语言和其它计算机语言一样,也有其专有的词汇(即关键字)和语法。关键字、 名字、特殊字符和运算符等按照语法规则排列组成SAS语句,一个SAS程序由若干数据步、 过程步组合而成,而每一个程序步通常由若干语句构成。SAS程序是在Editor窗口中进行 编辑,提交运行后可以在Log窗口中显示有关信息和提示,在Output窗口显示运行的结果。2.1实验目的通过实验了解SAS编程的基本概念,掌握SAS编程的基本方法,掌握SAS数据步对数 据集的管理和对数据的预处理。2.2实验内容一、建立逻辑库与数据集,包括逻辑库的建立、直接输入数据建立数据集与读取外部数 据文件建立数据集。二、数
2、据文件的编辑与整理,包括数据集的横向合并与纵向合并、数据集内容的复制、 变量和观测的增减与筛选、数据集的拆分和数据的排序等。2.3实验指导一、建立逻辑库与数据集建立逻辑库【实验2-1】编程建立逻辑库。首先在D盘创建一个文件夹,如D:SAS_SHIYANSASDATA建立逻辑库mylib,编辑并运行下面程序语句即可。libname mylib D:sas_shiyansasdata”;直接输入数据建立数据集【实验2-2】将表2-1(sy2_2.xls)中的数据直接输入建立数据集sy2_2,并将其存入逻辑 库mylib中。表2-1职工工资编号姓名性别工作日期职称部门基本工资工龄工资奖金扣款实发工资
3、3003王以平男1992-8-1助工生产620300500014203004林红女1993-8-1助工供销62028050020012003005吕兴良男1982-1-30工程师技术110050050010020003006司马宇男1971-2-17工人生产520720500017403007张学武男1967-10-9工人保卫52080050020016203008冯玉霞女1987-8-1工程师生产110040050025017503009赵大强男1968-5-10工人财务520780500018003010王萍女1987-8-1工程师技术11004005001001900代码如下:data
4、mylib.sy2_2;input bh $ xm $ xb $ gzrq $ zc $ bm $ jbgz glgz jj kk sfgz;informat gzrq yymmdd10.;format gzrq ddmmyy8.;label bh=编号xm=姓名xb=性别gzrq=工作日期zc=职称bm=部门jbgz=基本工资 cards;3003 王以平glgz=工龄工资男 1992-8-1jj=奖金助工kk=扣款生产sfgz=实发工资;620 300 500014203004林红女1993-8-1助工供销62028050020012003005吕兴良男1982-1-30工程师技术1100
5、50050010020003006司马宇男1971-2-17工人生产520720500017403007张学武男1967-10-9工人保卫52080050020016203008冯玉霞女1987-8-1工程师生产110040050025017503009赵大强男1968-5-10工人财务520780500018003010王萍女1987-8-1工程师技术11004005001001900;RUN;3.读取外部数据文件建立数据集【实验2-3】读取文本文件sy2_3.txt (图2-2)建立数据集work.sy2_3。假设文本文件 存放在文件夹D:SAS_SHIYAN原始数据”中。男1992-8-
6、1助工 生产G2030Q50001420女1993-8-1助工供销62028050020G12Q0男1982-1-30工程师技术11005Q05001002QQ0男1971-2-17工人生产52072Q50001740男1967-10-9工人保卫52080050020G1620女1987-8-1工程师生产11004005002501750男1968-5-10工人财务52078050001800女1987-8-1工程师技术11004005001001900B sy2_3. txt -记事本匚I口|区|文件(E)编辑(E)格式(Q)查看也)帮助(H)平良宇武霞骚 以红兴马学玉大荐 王林吕司张冯赵王
7、 34567890 O0000001 Q 33333333图2-2文本文件sy2_3.txt代码如下:data sy2_3;infile d:sas_shiyan 原始数据 sy2_3.txt;input bh $ xm $ xb $ gzrq zc $ bm $ jbgz glgz jj kk sfgz;informat gzrq yymmdd10.;format gzrq date9.;run;注意:文本文件中数据之间用空格隔开,不能使用Tab键。【实验2-4】读取Excel文件sy2_2.xls (如表2-1所示)建立数据集work.sy2_4。已知 Excel文件sy2_2.xls存放
8、在文件夹d:sas_shiyan始数据”中。首先将表2-1修改为如图2-4所示的Excel表sy2_4.xls,并存放在d:sas_shiyan原始数据 中。图 2-4 Excel 表 sy2_4.xls建立数据集work.sy2_4代码如下:proc import out=sy2_4datafile = d:sas_shiyan原始数据sy2_4.xls”dbms = excel2000 replace;getnames = no;/*如果表中第一行为变量名,则删去此行*/run;注意:sy2_4.xls中第3至5列中的多加的“0”是为了保证导入后字符型变量的长度正确。二、数据文件的编辑与整
9、理数据集的复制与修改【实验2-5】将mylib.sy2_2中的“工作日期”去掉,基本工资小于600的改为600,生 成新的数据集work.sy2_5。代码如下:data sy2_5;set mylib.sy2_2;drop gzrq;if jbgz 600 then jbgz = 600;run;增加新变量【实验2-6】在mylib.sy2_2中增加变量yfgz (应发工资=基本工资+工龄工资+奖金)、 生成新的数据集work.sy2_6。代码如下:data sy2_6;set mylib.sy2_2;yfgz = jbgz + glgz + jj;run;数据集的纵向拆分【实验2-7】按基本
10、工资是否大于600将mylib.sy2_2拆分成两个新数据集work.sy2_7_1 和 work.sy2_7_2。代码如下:data sy2_7_1 sy2_7_2;set mylib.sy2_2;select;when (jbgz=600) output sy2_7_2;end;run;数据集的纵向合并【实验2-8】将上述拆分后的两个数据集纵向合并恢复原样,产生新的数据集 work.sy2_8。代码如下:data sy2_8;set sy2_7_1 sy2_7_2;run;数据集的横向合并【实验2-9】将mylib.sy2_2中职称为“工人”的观测拆分成一个仅含编号、姓名和基 本工资,一个
11、仅含有编号和实发工资的两个新数据集work.sy2_9_1和work.sy2_9_2。然后 将 work.sy2_9_1 和 work.sy2_9_2 合并成一个新数据集 sy2_9。提取职称为“工人”的观测:data sy2_9_0;set mylib.sy2_2;if (zc =工人);run;建立两个数据集:data sy2_9_1;set sy2_9_0;keep bh xm jbgz;run;data sy2_9_2;set sy2_9_0;keep bh sfgz;run;横向合并:data sy2_9;merge sy2_9_1 sy2_9_2;by bh;run;proc pr
12、int; run; /*列表显示数据集 sy2_9*/数据的排序【实验2-10将 mylib.sy2_2按jbgz升序、sfgz降序排序后生成新的数据集work.sy2_10。 代码如下:proc sort data= mylib.sy2_2 out = sy2_10;by jbgz descending sfgz; /*在变量前加descending选项为降序排序,缺省为升序*/run;proc print data= sy2_10; /*列表显示数据集 sy2_10*/run;说明:在对两个数据集横向合并时,为了避免因两个数据集观测顺序不同造成混乱,一 般应将两个数据集分别按同一个变量(B
13、Y变量)排序后再合并,如【实验2-9】中的横向 合并可写成:Proc sort data = sy2_9_1;by bh;Proc sort data = sy2_9_2;by bh;run;data sy2_9;merge sy2_9_1 sy2_9_2;by bh;run;proc print; run;7.数据的列表显示【实验2-11】列出数据集mylib.sy2_2中所有男性职工的编号、姓名、部门、基本工资。 代码如下:Proc print data = mylib.sy2_2 label;var bh xm bm jbgz ;label bh =编号xm =姓名bm =部门jigz
14、=基本工资;where xb =男;run;2.4上机演练1 .使用编程方法对sashelp.class数据集进行加工:(1)生成sex=(5子集; 生成只包含name,height,weight的子集(用数据集选项或SAS语句);增加新变量 ratio=weight/height;用SELECT和OUTPUT语句把CLASS数据集拆分为性别为男和女的两个数据集.用DO循环语句读入下列数据表:A 1 31.5A 2 29.8A 3 32.4B 1 40.1B 2 41.1B 3 42.0C 1 50.1C 2 51.2C 3 50.8 生成有3个变量(TYPE,GROUP,Y)9个观测的数据集DABC;(2)用条件IF语句或数据集选项where生成只包含TYPE=B的数据集DAC.对SASUSERo admi
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026浙大-丽水联创中心细胞治疗创新实验室招聘6人笔试参考题库及答案解析
- 2026北京第二外国语学院管理助理、教学助理招聘(第二批)笔试模拟试题及答案解析
- 2026山西太原师范学院招聘博士研究生43人考试备考题库及答案解析
- 2026新疆新星人才发展有限公司代新疆大佳城市服务有限公司市场化选聘3人笔试备考试题及答案解析
- 2026湖北十堰郧西站换乘中心招聘10人考试备考试题及答案解析
- 2026云南临沧市惠工社会服务中心招聘工会社会工作专业人才20人笔试备考试题及答案解析
- 2026浙江省宁波梅山国际冷链有限公司招聘4人笔试参考题库及答案解析
- 2026江苏苏州市昆山市锦溪人民医院合同制卫生专业技术人员岗位招聘1人笔试备考试题及答案解析
- 2026重庆飞驶特人力资源管理有限公司渝北渝聚人分公司外派至某国有企业智慧运维专组人员招聘4人考试参考题库及答案解析
- 2026年宁德市霞浦县崇儒卫生院招聘中医师1人笔试备考试题及答案解析
- 2026香溢融通控股集团股份有限公司招聘12人笔试历年参考题库附带答案详解
- 青岛市市南区2025-2026学年第二学期二年级语文期中考试卷(部编版含答案)
- 第12课 辽宋夏金元时期经济的繁荣 课件(共26张 内嵌视频)
- 《爱护动植物》教学课件-2025-2026学年统编版(新教材)小学道德与法治二年级下册
- 第三方检测业务制度
- 统编版(新教材)道德与法治二年级下册第9课勤俭传家好
- ★司法鉴定程序通则-自2025年5月1日起施行
- 规范涉企执法行为制度
- 监所防疫知识培训
- 2026年世界科技前沿科技常识与创新试题
- 真菌性心包炎曲霉感染个案护理
评论
0/150
提交评论