- 1、本文档共25页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
SAS应用基础2-2 混合模式输入演示教学.ppt
制作:ZXD * 混合模式输入 对一些复杂的非标准的源数据文件,各数据字段需要不同的读入模式才能正确匹配,这时可在input语句中混合使用各种读入模式。 例:imptdt07.dat中前11列是社保号,接着7列是开始雇佣日期,20-25列是逗号分隔的年薪,27列开始的字段是部门,最后是电话分机号。 Data mixdimpt; Infile d:\zxd\sas\impddt07; Input SSN $1-11 @12 HireDate date7. @20 Salary comma6. Department : $9. Phone_No; Format HireDate yymmdd10. Salary Dollar7.; Run; 你知道这里用了几种输入模式吗?程序可以改动吗? * 处理数据步的全过程 SAS系统执行数据步的过程主要分为两个阶段: ? 编译数据步 语法检查,代码转换(机器码) 创建输入缓冲区(存放数据源中的一行记录) 创建一个程序数据向量PDV (可暂存数据集的当前一条观测) 创建SAS数据集的描述部分(数据集名称、观测变量个数和变量属性等) ? 执行数据步 * 程序向量数据缓冲器PDV PDV(Program Data Vector)来存放当前的一个观测;观测数据经处理后存入数据集。这是数据步的主要工作场所。 PDV中包括两个自动生成的临时变量:_N_(记录数据步执行的次数)和_ERROR_(错误标志:0为无错误,1为发生错误) 数据步中出现的变量(包括数据集内的变量) * 数据步执行阶段 在执行期间,SAS系统执行以下步骤:(除非另有指向) 1)PDV中所有的变量值被初始化为缺失值; 2)输入缓冲器据input语句的数据需求,读入源数据文件的相应记录行, 并写相应的数据字段到PDV; 3)每个语句被顺序执行,并可修改PDV形成当前观测; 4)数据步语句一遍执行后, PDV中的值写入数据集;* 5)PDV中外部变量初始化为确失值,程序流程回到2); 6)对数据源文件的每条记录都按上面步骤执行一次; 7)重复以上步骤直到外部文件中数据结束。 * input语句后的单尾符@ 一个数据步内可以有多条input语句。但是当执行完一条input语句后,一般将放弃缓冲区内现有源数据行,而从源文件中再取一条记录更新缓冲区。若要保持现有源数据行供下一条input使用其数据,则应在input语句的最后加入@跟踪符。 例: data tmp1; input x; input y; cards; 11 22 33 44 55 66 ; run; data tmp2; input x@; input y; cards; 11 22 33 44 55 66 ; run; data tmp3; input x@; input y@; cards; 11 22 33 44 55 66 ; run; * 指针控制符用法示例 行指针用法示例: data tmp1; input name:$10. age / score1-score3; cards; zhangsan 12 88 98 67 lisi 13 77 98 86 ;run; 列指针用法示例1: data tmp2; m=-1;/*左移一列*/ input x 1-4 +m y @2 id$2.; /*drop m;*/ cards; 12345 24680 13579 ;run; 列指针用法示例2: data tmp3; input id $2. age 3-4 @size= x; list; cards; 0116size=54.23 0215size=45.66 1318size=61.01 ;run; * 由计算生成变量 在数据步中,可以用赋值语句来生成新变量。一般形式为: 变量=表达式; 功能:将表达式的计算值赋给变量,若该变量不在数据集中,则新增之。 例: 输入工号、生日、工资、奖金,计算年龄和总收入。 data tmp; input id $2. @4 birthday yymmdd8. m1 m2; age=intck(year,birthday,date()); total=(m1+m2)*(1-0.05); cards; 01 66/07/03 598.50 1200 10 70/01/23 504.67 1100 ;run; * 数据步内同时建多个数据集 利用条件控制语句if与输出语句output配合,可在一个数据步内同时建立多个数据集。 例如:利用同一数据源建立两个数据集 data tmp1 tmp2; input name$ age score@@; if age=30 then output tmp1;
您可能关注的文档
- PowerPoint 2007的基本操作 PowerPoint 2007 相关培训教程教案.ppt
- powertemplate-教材.ppt
- PPH术后并发症的防治教学教案.ppt
- ppt 大学生成功之路教材 第二课认识你自己.ppt
- ppt 第五课价值观 大学生成功之路 ——成功的指南针教材课程.ppt
- ppt 高三家长会-主题班会知识介绍.ppt
- PPT--6.1---(三)英美音差异教学文稿.ppt
- PPT-0.导言 论文写作指要教程 教材ppt.ppt
- PPT-1.绪论 论文写作指要教程 教材ppt.ppt
- PPT-3.论文资料收集 论文写作指要教程 教材ppt.ppt
- 2025年四川省眉山市东坡区供销合作社招聘2人考前自测高频考点模拟试题附答案详解.docx
- 2025年四川省绵阳市梓潼县发展和财政局招聘编外人员考前自测高频考点模拟试题及答案详解1套.docx
- 2025年四川省德阳市罗江县审计局招聘考前自测高频考点模拟试题含答案详解.docx
- 2025年四川省宜宾市兴文县发展和财政局招聘编外人员考前自测高频考点模拟试题含答案详解.docx
- 2025年四川省甘孜藏族自治州色达县文体广电局招聘考前自测高频考点模拟试题附答案详解.docx
- 2025年四川省达州市通川区发展和财政局招聘编外人员考前自测高频考点模拟试题及答案详解1套.docx
- 2025年四川省自贡市自流井区住房和城乡建设局选聘事业编制人员考前自测高频考点模拟试题及答案详解1套.docx
- 2025年安徽省六安市裕安区供销合作社招聘2人考前自测高频考点模拟试题及答案详解1套.docx
- 2025年四川省德阳市广汉市派出所招聘协(辅)警6人考前自测高频考点模拟试题附答案详解.docx
- 2025年四川省成都市成华区审计局招聘考前自测高频考点模拟试题含答案详解.docx
文档评论(0)