- 1、本文档共75页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
6-2.数据修改及程序结构教程
数据修改及程序结构;1. 赋值语句 ;Data a;
x=15;
grp=“A”;
Run;
;结果变量类型 ;表达式值转换;表达式值转换;结果变量长度 ;解决办法:
1. 先用LENGTH语句定义长度
2. 在第一次赋值时添加足够空格;2. 累加语句 ;应用准则
累加变量在第一次执行前的初始值为0;
表达式的计算结果为缺失值时,取0代替;
表达式可以使用比较算符;
语句A+(-B)中的(+)是必须的,不能写成A-B。 ;data a;
input id sex $;
m=m+1; /* 赋值语句不能累加*/
if sex=“F” then K+1; /* 条件累加*/
cards;
1 F
2 M
3 F
4 F
5 M
;
run;
proc print;
run;;赋值语句+RETAIN语句可实现累加;data a;
input id sex $;
Retain m 0; /* 申明m值保留不清空,初值为0*/
m=m+1; /* 实现累加*/
cards;
1 F
2 M
3 F
4 F
5 M
;
run;
proc print;
run;;例如,对X平方后再累加;3. DELETE语句;例如,与if语句联用,删除部份观察;例如,清空一个数据集 ;4. DROP语句 和 KEEP语句;例如,指定不输出到数据集中的变量;例如,指定需要输出到数据集中的变量;5. STOP语句;数据步循环执行到第4次,即x=4, y=9时,n=6,满足n4的条件,执行STOP语句,则立即停止数据步的执行,正被处理的那条观测不会被添加到数据集A中。A中只有3条观察。;6. ABORT语句 ;数据步循环执行到第4次,即x=4, y=9时,n=6,满足n4的条件,执行ABORT语句,则立即停止数据步的执行,正被处理的那条观测不会被添加到数据集A中。如果数据集A先前已经存在,则不会被替换;如果数据集A先前不存在,则建立数据集A,只有3条观察。;data a;
input x y;
if x=4 then n+2;
IF n4 THEN ABORT;
cards;
2 5
4 2
4 8
4 9
7 2
;
run;
proc print;
run;;例如,ABORT语句使程序出现错误时终止执行;7. LOSTCARD语句 ;例,每个记录应包含两行数据,第一行为SID和性别,第二行为SID和两门功课的成绩,读取信息完整的记录;LOSTCARD语句的执行步骤 ;data a;
input id1 x $ #2 id2 y $ #3 id3 z $;
if id1 ne id2 or id2 ne id3 then lostcard;
cards;
101 A
102 B
102 B
103 C
103 C
103 C
104 D
105 E
105 E
105 E
;
proc print;
run;;例中,DATA步读3个数据行作为1个观测。第1个观测有2个丢失记录,第2个观测有1个丢失记录,第4个观测丢失2个记录。只有第3和第5个观测是完整的观测。
LOG窗口显示的信息:
NOTE: LOST CARD.
RULE: ----+----1----+----2----+----3----+----4----+----5----+----6----
5 101 A
6 102 B
7 102 B
NOTE: LOST CARD.
8 103 C
NOTE: LOST CARD.
9 103 C
NOTE: LOST CARD.
11 104 D
12 105 E
13 105 E
NOTE: 数据集 WORK.A 有 2 个观测和 6 个变量。 ;语句格式 WHERE 逻辑表达式;根据表达式选择满足条件的观察 ;WHERE语句的特点 ;例,where语句选择观测;例,where语句选择观测;Where age between 18 and 65;
Where taxes between salary*0.30 and salary*0.50;
Where taxes not between salary*0.30 and salary*0.50;
Where idnum is missing; /*idnum为缺失值时 */
Where name is null; /*name为空时*/
Where score in (“A”,”B”); /*score为“A”或“B”时*/
Where
您可能关注的文档
- 5液压传动控制调节元件(二)教程.ppt
- 5第五章网络层教程.ppt
- 卓越营销团队培训之电话约访篇.ppt
- 5第五章诊断酶学教程.ppt
- 单片机地铁或公交自动报站器设计.docx
- 单片机基础(第3版)_第4章.ppt
- 5第5章异步电机拖动-第4版(终稿)教程.ppt
- 5统计指数教程.pptx
- 5线设计说明教程.doc
- 5脚手架工程教程.docx
- 2025-2030内增高鞋企业创业板IPO上市工作咨询指导报告.docx
- 2025-2030内存条市场前景分析及投资策略与风险管理研究报告.docx
- 2025-2030内径千分尺行业市场现状供需分析及重点企业投资评估规划分析研究报告.docx
- 2025-2030内存连接器行业市场现状供需分析及重点企业投资评估规划分析研究报告.docx
- 2025-2030内存卡行业风险投资发展分析及运作模式与投融资研究报告.docx
- 2025-2030内燃机车行业市场深度分析及发展策略研究报告.docx
- 2025-2030内增高鞋行业行业风险投资发展分析及投资融资策略研究报告.docx
- 2025-2030内蒙古危险废物处理行业市场调研研究报告.docx
- 2025-2030内衣行业兼并重组机会研究及决策咨询报告.docx
- 2025-2030内窥镜夹钳行业市场现状供需分析及重点企业投资评估规划分析研究报告.docx
文档评论(0)