- 1、本文档共8页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
sas试题课笔记三
★作业3.1〓
例题3.14中a)b)的其他做法〓
a)的原方法〓
data ex.app1_a;
set data.ex_23(firstobs=5);
run;
a)的另一种方法〓
data ex.app1_a;
set data.ex_23;
if _n_=5;
run;
data app1_a;
set data.ex_23;
if _n_=5 then do;
output;
end;
run;
3.14_b的原方法〓
data ex.app1_b;
set data.ex_23(firstobs=5 obs=9);
run;
3.14 b)第二种方法〓
data ex.app1_b;
set data.ex_23;
if 5=_n_=9;
run;
data app1_b;
set data.ex_23;
if _n_5 then delete;
if _n_9 then delete;
run;
3.14中的if语句不可以改成where语句 因为例题中的变量是SAS的自动变量而 where语句不可以控制自动变量〓
3.2 使用if 语句完成例3.15〓
data ex.block;
set data.hf000012;
if date=01aug2006d;
if tvolume=100000;
if tprice0;
run;
where语句的做法〓
data ex.block;
set data.hf000012;
where date=01aug2006d and tvolume=100000 and tprice0;
run;
★练习3.2 使用if 语句完成例3.15〓
data ex.block;
set data.hf000012;
if date=01aug2006d;
if tvolume=100000;
if tprice0;
run;
where语句的做法〓
data ex.block;
set data.hf000012;
where date=01aug2006d and tvolume=100000 and tprice0;
run;
NOTE: 从数据集 DATA.HF000012 读取了 65834 个观测。
NOTE: 数据集 EX.BLOCK 有 124 个观测和 31 个变量。
NOTE: DATA 语句所用时间(总处理时间):
实际时间 0.67 秒
CPU 时间 0.25 秒
NOTE: 从数据集 DATA.HF000012 读取了 124 个观测。
WHERE (date=01AUG2006D) and (tvolume=100000) and (tprice0);
NOTE: 数据集 EX.BLOCK 有 124 个观测和 31 个变量。
NOTE: DATA 语句所用时间(总处理时间):
实际时间 0.15 秒
CPU 时间 0.10 秒
可见 if语句是先读取数据然后再选择符合要求的观测而where语句则是直接读入满足条件的观测〓
3.2 先用select语句再用 where语句〓
select 语句〓
data ex.p_10 ex.p_10_20 ex.p_20_30 ex.p_30up;
set data.hf000012;
select;
when(tvolume100000) output ex.p_10;
when(100000=tvolume200000) output ex.p_10_20;
when(200000=tvolume300000) output ex.p_20_30;
when(tvolume=300000) output ex.p_30up;
otherwise;★老师加了这一步〓
end;
run;
if 语句〓
data ex.p_10if ex.p_10_20if ex.p_20_30if ex.p_30upif;
set data.hf000012;
if tvolume100000 then output ex.p_10if;
if 100000=tvolume200000 then output ex.p_10_20if;
if 200000=tvolume300000 then output ex.p_20_30if;
if tvolume=300000 then output ex.p_30upif;
run;
★作业3.3〓
〓
data ex.r_day5_000001(keep=date return);
merge data.stk000001 data.stk000001(fi
文档评论(0)