SAS编程技术数据步修改与选择观测.ppt

SAS编程技术数据步修改与选择观测.ppt

  1. 1、本文档共89页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
赋值语句 语句格式: variable=expression; 将表达式结果赋予一个变量。 选项说明: 例7.1 赋值语句举例 data a; set ResDat.class; by sex; n=_N_; error=_error_; first_s=first.sex; last_s=last.sex; proc print; run; x=a+b; /* 规定新变量x,它是a和b的和*/ t(2)=sum(of x1-x5); /*规定数组元素,它的值是一函数值*/ a=a+b; /*规定一个已经存在的变量a,它的值为原来值和b之和*/ 结果变量类型 决定结果变量类型的准则: 如果表达式中的变量全为数值型,结果变量为数值型; 如果表达式中的变量全为字符型,结果变量为字符型; 如果表达式中的变量既有数值又有字符型,结果变量为数值型。 结果变量长度 结果变量的长度是第一次扫描结果的长度,除非事先由LENGTH语句规定好结果变量的长度。 例7.2 第一扫描结果的长度不是所有数据中的最大长度时会出错 data a; lstknm=深发展; /*第一扫描结果的长度为4 */ lstknm =大秦铁路; /* lstknm的长度为4,所以显示结果为lstknm =大秦铁*/ proc print; run; 例7.3 用LENGTH语句得到正确输出结果 data a; length lstknm $12; /* 规定变量lstknm的长度为12 */ lstknm=深发展; lstknm =大秦铁路; proc print; run; 累加语句 语句格式: Variable+expression; 累加语句累加表达式结果。 选项说明: 应用准则: 累加变量的观测被读入之前,值为0; 表达式的计算结果为缺失值时,取0代替; 表达式可以使用比较算符; 语句A+(-B)中的(+)是必须的,不能写成A-B。 例7.4 累加语句等于使用SUM函数和一个RETAIN语句 data a (keep=name height s_h); set ResDat.class ; s_h+height; proc print; run; data b (keep=name height s_h); set fdata.class ; s_h=sum(s_h, height, 0); retain s_h 0; run; 上面两段程序等价 应用举例 例7.5 表达式SUMX+X*X把X*X的结果加到SUMX上 data a (keep=date uss); set ResDat. Dret(where =(stkcd=’000002’)); uss+ Dret**2; /*USS为变量Dret的平方和 */ run; 例7.6 计算非缺失值的观测个数 data a(keep=nmis); set ResDat.indcls; nmis+sector^= ; run; 例中,NMIS为变量SECTOR非缺失值的观测个数,即按SECTOR分好类股票的个数。 DELETE语句 DELETE语句停止处理当前观测,该观测值不被读入到创建的数据集,SAS系统返回到DATA步的开头处理其他观测。 语句格式: DELETE; 例7.7 删除部分观测值 data stka; set ResDat.lstkinfo; if Stktype=’B’ then delete; run; 例中,删除数据集RESDAT中Stktype=’B’的观测值。 例7.8 清空数据集 data a; set ResDat.lstkinfo; delete; run; 例中,删除数据集A中的所有观测值,即清空数据集A。设计复杂程序时,常会用到DELETE语句的这种用法。 LOSTCARD语句 LOSTCARD语句用于重新对准输入数据。 当一个观测包含几个数据行,且当前观测缺少其中的一些行时,利用LOSTCARD语句可以防止SAS系统从下一个观测的数据行读数据作为当前观测的一部分。 语句格式 LOSTCARD; 使用LOSTCARD语句时,必须用IF-THEN语句给出丢失数据行的条件。 适合使用LOSTCARD语句的情况有: 每个观测有固定的输入数据行; 同一个观测的每个数据行都有一个同值的识别变量。 例7.9 每个数据行都有一个同值的识别变量 data a; input id 1-3 reject #2 idc 1-3 pass; if id ne idc then do; put 数据行错误 id= idc=; lostcar

文档评论(0)

喵咪147 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档