楼主: foocares
2966 20

[学习分享] 2017年4月21日BASE, 5月16日ADV 100%双通过,感谢本版 [推广有奖]

  • 0关注
  • 5粉丝

博士生

93%

还不是VIP/贵宾

-

威望
0
论坛币
548 个
通用积分
0
学术水平
28 点
热心指数
26 点
信用等级
24 点
经验
10891 点
帖子
299
精华
0
在线时间
158 小时
注册时间
2017-4-12
最后登录
2018-2-26

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
最近一周为了准备考试,经常在这里混,感谢各位前辈的经验,考试很顺利,几乎没有生题。
现在趁着记忆还热络,赶紧写一下回馈本版。


就像之前大家总结的那样,如果只是为了准备考试,那么95题(70+25)和123题这两样是最重要的,一定要在理解的基础上吃透。除此之外楼主做的准备就是:
1. 先读了一遍little sas book打底,这个估计以后可以当工具书翻。
2. 有一些比较鸡贼的知识点疑问就去看官方的Prep Guide(例如不太好记的Proc report各种繁多的选项)。
3. 学以致用,有的题目可以自己装个SAS先跑跑例子,眼见为实见证结果是怎样的。尤其像input里各种花样读数据的方式,建议实际跑一下,比如little sas book上第二章讲输入时的那个南瓜例子:
DATA contest;
   *libname mylib 'D:\SAS9\My SAS Files\9.0\Little SAS Book Codes';
   filename myfile 'D:\SAS9\My SAS Files\9.0\Little SAS Book Codes\Pumpkin.dat';
   INFILE myfile;
   *LENGTH Name $16;   /*either way OK, as long as pointer moves correctly*/
   *INPUT Name $16. Age 3. +1 Type $1. +1 Date MMDDYY10.
         (Score1 Score2 Score3 Score4 Score5) (4.1);

  INPUT Name $1-16 +1 Age 2. +1 Type $1. +1 Date MMDDYY10. (Score1 - Score5) (4.1);
         *(Score1 Score2 Score3 Score4 Score5) (4.1);
RUN;

这里用column来控制输入,加上指定指针跳来跳去非常微妙,如果试着稍微改一下就可能面目全非结果不对,所以多试试,多想想,例如不按书上给的方式,还能怎么玩可以得到同样结果?像我的注释行和运行行都能输出正确结果,我还尝试了先指定length再换informat等等,多样花式作死吃鳖后我终于理解了指针读进来和读完后停留的位置。总之理解才是王道。

言归正传,今天考的题里印象比较深的变形题可以结合简的这个两天前的机经看看:
https://bbs.pinggu.org/thread-5547729-1-1.html
基本上八九不离十。
主要有:
95题:
17 仍旧是三个western输出,答案位置改成了D
21 GT30变成GT50,答案因此变成1
注意看清,是用sale GT 50,有时候可能用变形price来筛。
31题不变,比较考量人的是第三行不会再读入了
35 改为了else output other,答案2,2,1
42 改成了填空,经典改动,答案5,是Australia的us起始位置

123题:
50
改填空了,大家都知道是by IDNumber Expenses
这里最好打字时细心点,像楼主一开始指头粗Expenses没打全,后来检查时惊出一身冷汗。
109 著名的ruth题,记住读的永远是下一列的对应数据。


此外,eof=1这个知识点考了两遍。
几个sort考题里注意desecending的作用范围,而且字符排序和数值排序不一样。
set, length, format的各种变形组合问变量长度,反正就一个原则:谁先来,谁就占着长度,后头重复定义都无效。
retain的初始值和作用。
另外有个ods的题可以有结论了,就是无论ods html中间夹杂了多少个proc,
ods html file = '';
proc print data = xxx;
proc freq data = xxx;
ods html close;
它们的输出结果都会存到同一个html里,所以正确答案是both.
今天幸亏没碰上曾经让我抓狂的字符串函数赋值变量的返回长度,不然又会在考场纠结半天的。

现在来说说唯一一道让我想了半天没办法确定的面目比较生的题:
大概题目是这样的:
给你一个set emp, 里面有三行数据
name        permexp  tempexp
admin           5x        某数字
education      25          7
xxx              30          5


然后这段程序里有:
data totalemp;
  set emp;
  retain totalexpens;
  if _N_ =1 then totalexpens = 0;
  else
       totalexpens = permexp + tempexp;
run;
然后四个备选答案:
首先上来排除第一行totalexpens结果不为0的两个答案。
name       permexp tempexp  totalexpens
admin                                      0
education     25          7             32
xxx             30         5              ?
剩下两个答案里,第二行都是32,这也没问题,关键是第三行有区别,一个是35,一个是67.
那么这里考的就是,到底前头那句retain会不会影响到totalexpens的求和结果?
想了半天,应该是不影响,因为即便retain了,后头进入_N_=3的时候,它求和根据的两个变量是第三行新读进来的数据,又不是跟自己相加,所以retain了也管不着。因此最后正确答案是只加第三行的求和。
我们熟记的姿势往往是A+B;等同于retain A 0; A= SUM(A, B) ;
但这题里没考跟自己叠加,所以看清楚表达式很重要。


就这样,祝大家都顺利通过!

4/25编辑:亦将余勇追穷寇,楼主决定一鼓作气开始向ADV进军,这贴接下来就主要记录这个过程给自己打气啦。5月16编辑:今天以100%又考过了ADV,所有题目都在63题和机经范畴之内,但仍然充斥大量变形,临考时需仔细审题。有几个题还挺刁钻的让人纠结了一会儿。比如各种场合引用macro时哪里要双引号哪里不要,到底几个双引号。
基本上考题里就一个原则:只有用到%if exp表达式那里不需加双引号,其他统统加。

还有关于Proc FCMP的选择题cmplib我是完全都没读过这个知识点硬背的答案,侥幸过了。



二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:Base proc report Prep Guide Education correctly

沙发
tongswim 发表于 2017-4-22 14:35:27 |只看作者 |坛友微信交流群
谢谢分享。恭喜楼主!

使用道具

藤椅
jennifersychen 发表于 2017-4-23 00:35:07 |只看作者 |坛友微信交流群
恭喜楼主!我也是同一天考的,没有新题,都在70+95+123+机经!花3-5天做题目可以过的,大家加油!

使用道具

板凳
琅呀帮 发表于 2017-4-25 09:17:53 |只看作者 |坛友微信交流群
恭喜楼主!

使用道具

报纸
__简。 发表于 2017-4-25 22:49:14 |只看作者 |坛友微信交流群
恭喜!继续加油!

使用道具

地板
foocares 发表于 2017-4-26 00:09:30 |只看作者 |坛友微信交流群
__简。 发表于 2017-4-25 22:49
恭喜!继续加油!
哈,多谢。现在咱都算是有BASE证的人啦,关于ADV兄弟你打算怎么个弄法啊?
是真的要把900多页的书啃下来(楼主看了两天已经快崩溃看不下去了,我一天看45页也要20天啊),
还是走捷径背背题和机经就去啊?

使用道具

7
__简。 发表于 2017-4-26 22:27:46 |只看作者 |坛友微信交流群
foocares 发表于 2017-4-26 00:09
哈,多谢。现在咱都算是有BASE证的人啦,关于ADV兄弟你打算怎么个弄法啊?
是真的要把900多页的书啃下来 ...
900多页确实太多了,我还是想尽快考完。
https://bbs.pinggu.org/thread-4816640-1-1.html
这个帖子里有一个prep guide的笔记,我觉得考点都覆盖了,你可以参考一下,我基本是看这个笔记+书的summary部分。熟悉一下考点,再看机经,记忆可能会比较深刻。
一起加油!

使用道具

8
foocares 发表于 2017-4-27 00:35:40 |只看作者 |坛友微信交流群
__简。 发表于 2017-4-26 22:27
900多页确实太多了,我还是想尽快考完。
https://bbs.pinggu.org/thread-4816640-1-1.html
这个帖子里有 ...
多谢分享,这个我也下了,就是竖版并排看的不是很习惯。唉,我得加快进度了,目前也才看完相当于第三章的地方。

使用道具

9
foocares 发表于 2017-4-27 03:12:06 |只看作者 |坛友微信交流群
今天看ADV资料的一个感想就是,有的语句记住备考就好,切不可入戏太深。
因为像很多proc sql里的功能并不是标准SQL语言。l例如 contains, calculated, label=, format=。
我在其他SQL的练习课程中试图用一下format=改一下输出格式,但死活就通不过,后来才想起这些都标着是SAS Enhancement,凡是有这些标记的都只能在SAS proc sql里用用,不能扩展!

那个calculated也很坑爹啊,标准SQL里的WHERE其实不容许有针对扫描后才存在的新变量进行操作(因为Where是pre-aggregate操作,这种场合本来只能用having),这个被视为雷区的操作到SAS这里被一个calculated覆盖了,方便是方便,但是很容易混淆坏事。

使用道具

10
foocares 发表于 2017-4-28 05:33:36 |只看作者 |坛友微信交流群
楼主今日已看到第四章竖加入,结合前头一章的横向加入,各种排列组合选项导致楼主现在整个脑子是懵逼的。
横向有inner join与outer join之分,outer join又分左、右、全,这里多出个On clause跟以前的Where对着干,嫌不够乱还可以把inner join按照outer join的格式写。
中间又掺杂coalesce选项以便跟match-merge结果兼容;
然后就是in-line view窜出来跟各种sub query进行搭配,进一步达到代码混乱不可读的目的。。。
接着来到纵向合并,看到四个算符except, intersect, union, outer union的区分,又加上ALL, CORR的选项。两表合并也就算了,还有个神奇的东东叫多表合并,各种算符混在一起,谁先谁后搞下来简直爽到爆炸。

总之准备ADV比BASE感觉要苦逼多了,感觉一个proc sql玩的花样已经让脑子被掏空记忆力跟不上,这时谁再要比较下SAS原有的merge, set跟这些SQL合并的结果异同楼主简直就想杀人了。

使用道具

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-4-30 21:47