登录
  • #数学|统计
  • #统计--软件

SA‌‌‍‍‌‍‍‌‍‌‍‍‌‌‌‍‍‍‍‍‌‌‍‍‍‌‌‌‌‌‍‌S BASE 2020/11/06 改革后经验分享/考题回忆

梵荼安
1075
1
考过了非常开心,都是站在大佬的脚印上哈哈~激情分享经验希望大家都过过过。

三个部分:复习步骤,考试题回忆,和考试体验。如果哪里代码打错了请指出来~

复习步骤:

1. udemy买了sas课复习一遍 (对没有基础的人来讲可能比较有用)。

2. 地里jj+crackman70题。参考了好多大佬的经验(此处不完全收录)。







3. 有个大佬自己弄的每日一练lab怎么都找不到那个帖子了,非常非常非常好用,几乎囊括了我考到的全部lab题,还有部分选择/填空题。如果你们也找不到,就参考比如这里列出的这些帖子,里面的lab自己打几遍练手,争取不用思考就能打。

4.考前几天做官方模拟测试题,非常懵,第一次做只对了60%左右。那些lab一定要亲手打几遍熟悉相关知识点。没准儿就考了类似的。

考试题回忆:

选择填空部分

1. 选择/填空基本是70题原型或变形。

2. 两个macro和两个transpose题。

3. 我考到的macro题:

1.怎么定义一个macro变量:选项有%let,%macro等等,选%let。

2.填空,给了一段代码,比如:

a = &target

叫你找出代码中的macro变量并赋值=8。填写:%let target=8;

看别的jj似乎有考到引用lib。记得引用之后再加个点。

比如:

%let libname=mydata

PROC PRINT DATA=&libname..filename; RUN;

4. 考到的transpose题要搞清楚ID,VAR,BY的用法。我的理解,ID拿来转换过后命名各column,VAR拿来框选要转换的字符变量或特定的数字变量,BY就是搞分组。如果没有var就默认为把所有的数值变量转换了,不管字符变量。如果要转换字符变量一定要用var,不想转换全部的数值变量也要用var选。

在大佬的手打lab题里他说有个拿来transpose的文件我没找到,这里在附件上传一个自己搞来练transpose的文件供大家参考。

5.有一题(70之42)是给了变量比如:

text=‘Australia, US, Canada’;

pos=find(text, 'us', 'i');

问你pos的值,此处是2。70题原题是find(text, 'us', 'i',5),从第五位开始寻找,所以答案不同。一定要看清楚不要大意。

6.这道题我肯定错了,给了个长得像txt的文件截图 (图上类似于age, name, 等等 用逗号隔开) 问import xxx.dat文件DBMS=?我不知道填什么。下来在网上查,据说要写 DBMS= dlm replace 后面还要指定delimiter, 不过我考的时候试过那个空根本没那么长,后面写不了replace,也并没有指定delimiter。估计这道题还有变形,问csv啊txt啊excel都用什么DBMS,我知道txt用DBMS=tab。下一题题干上import txt file就是用的这个,问的什么忘记了。

7.有一道ods html 的题,中间一个proc print步一个proc freq步只有一个run,问你最后的html能有几个proc步能输出。好像是70题原题?

8. ods题,给一段代码叫你选输出pdf的syntax。ods pdf file='output.pdf ';ods pdf close;

9.(大佬lab练习题里有)给个表格的截图,解释说x地2012年人口数是比如1000,每年增加6%,到2020年每年的人口结果如图,第一行是ID,第二行是逐渐递增的人口数,第三行是年份,问以下哪个代码可以输出这个表格。类似代码:

DATA populationx;

population=1000;

year=2012;

DO UNTIL (year=2020);

population=population*1.06;

year+1;

OUTPUT;

END;

RUN;

有个选项是year=2012 - 2020,有个选项没有在循环里加output,不符合题目截图。有个没有year+1直接死循环。

10.70题变形之drop语句改错。原题中要在data那一行写等效的(drop= var1 var2 var3),考题要在原位置改错,即drop var1 var2 var3; keep和drop的类似问题一共考了两题。

11.70题之66原题,do loop套do loop问最后几个obs。

12.70题之65原题,给变量加label。

13.70题之56题,问table语句。

14. X=mdy(1,15,1960) 问x值等于多少,等于14。

15. 70题之52题,merge数据得在A不在B,在B不在A的结果。

16. 70题之34题,问format储存问题,选catalog。

17. 70题之43题变形,直接问把shipped变成char要怎么写成Feburary, 20, 1996之类的格式: char_sh=PUT(shipped, worddate20.); 字符和数值转换似乎在lab也有考。

18. 70题之37题,label问题。似乎label一共考了两题。

19.70之33,PILOT2那道。

20.70题之21,几个分组,问OUTDOOR里几个变量。

21.70题之17, TULSA呀Los Angeles那道,问最后表格的结果。

22.就记得这么多了,知识点都差不多。

注意有一个版本的70题之45题,问cvs类型的文件能怎么打开,答案选的只能在text editor里打开是错的,能在excel和text editor里打开。

LAB部分

1.lab考到给excel文件让你建立library:

libname certxl xlsx 'c:\cert\input\input11.xlsx';

然后问你sheet1的名字。一般来讲sheet A应该叫sheet A$,我本地练习的时候不管直接点进左侧library查看还是proc contents都是sheet A$。奇怪的地方在于考试当中那两个sheet的名字直接不带$符号,就是people和income。用它里面的某个变量算平均值也是直接PROC MEANS DATA=certxl.income;不知道怎么回事。还有就是本地练习的时候我的电脑只能写 libname certxl excel 'c:\cert\input\input11.xlsx'; 来识别xlsx,但考试的时候只有xlsx能正确读取。

2.那个最简单的lab题也考到了,就是问encoding和label,然后求了个什么值。

3.lab改错。遇到某几个重复的firstname就count+1。比如:

PROC SORT DATA=cert.input44 OUT=input44; (所有的原文件都只读不能修改)

BY firstname;

RUN;

DATA out;

SET input44;

BY firstname;

IF upcase(firstname) in ('TAO', 'CHEN', 'AMANDA', 'JAMES') THEN DO; (原题在in的条件里不打引号,且前面没有upcase变量,导致没有一个变量符合要求)

IF first.firstname THEN count=0;

count+1;

END;

ELSE IF upcase(firstname) not in ('TAO', 'CHEN', 'AMANDA', 'JAMES') THEN count=0; (不知道这里直接else count=0不要后面的可不可以)

然后问第361个obs的firstname是什么?第582个obs的count是什么?

4.lab改错。给几个条件split dataset。

DATA sofas chairs tables beds;

SET cert.input38;

IF product='SOFA' THEN OUTPUT sofas; (改错前条件里没有大写,和数据集不符,output后面没有跟目标数据集)

ELSE IF product='CHAIR' THEN OUTPUT chairs;

ELSE IF product='TABLE' THEN OUTPUT tables;

ELSE IF product='BED' THEN OUTPUT beds; (谨慎起见我都会加if...then...,不知道这里只else行不行)

RUN;

然后问你sofas和chairs里面有几个obs?beds里第42个obs的price是多少?

5.lab给一个数据集,按照特定方式排序,并保留相同var1里面var2值最高的那个。记得用first./last.前先排序,否则会报错。

PROC SORT DATA=cert.input13 OUT=input13;

BY descending postal_code income; (邮编降序,收入升序。descending只管后面一个。)

RUN;

DATA results.output13;

SET input13;

BY descending postal_code income;

IF last.income; (同一邮编,升序排在末尾即数值最大)

RUN;

然后问了第64个obs的ID是多少?第52个obs的age是多少?(总之是某个别的变量)

6. lab给数据集,empID的格式是CABnnnnn,比如CAB12306,提取数字部分组成新的num变量numID,y=numID*5,求y在某个组的平均值。

DATA output21;

SET cert.input21;

numID=INPUT(substr(empID,4,5),5.);

y=numID*1.5;

RUN;

问y在比如department='clean'时的平均值。

7. 似乎和上述lab3一个题,firstname含有大小写z的zflag=1,否则zflag=0,求全部数据中zflag=0的数量。

DATA out2;

SET cert.input44;

IF find(firstname,'z','i') ne 0 THEN zflag=1;

ELSE IF find(firstname,'z','i') = 0 THEN zflag=0;

RUN;

8.给一个数据集,叫你先drop smoking weight height等,再根据cholesterol建立新变量,比如小于80是正常,80-200是临界,201以上是高。要求不包含missing。

DATA health;

SET cert.input08;

LENGTH grade $11;

IF cholesterol ne . THEN DO;

IF cholesterol < 80 THEN grade='normal';

ELSE IF cholesterol <=200 THEN grade='normal-high';

ELSE IF cholesterol >=201 THEN grade='high';

END;

RUN;

问最后normal里有多少obs,high里有多少obs。

这里就是没有定义200-201之间的值,所以200-201之间和原本missing的值一起在grade里都missing。

9.在官方模拟题里有。给数据集,只选择group=A或者B(有大写有小写)的数据。分别算price的median,再把范围外(45-310)的price根据分组分别等于A或者B的median,最后分组算mean。

DATA output45;

SET cert.input45;

WHERE upcase(group) in ('A','B');

RUN;

PROC MEANS DATA=output45 median;

VAR price;

CLASS group;

RUN;

DATA output45a;

SET output45;

IF price lt 45 or price gt 310 THEN DO;

IF group='A' THEN price=61;

ELSE IF group='B' THEN price=72;

END;

RUN;

PROC MEANS DATA=output45a mean maxdec=0; (答案要求整数,直接一步到位)

VAR price;

CLASS group;

RUN;

好像问了output45里面一共多少个obs,然后问了output45a里priceA组的mean是多少。

11.给俩数据集合并,全部合上得一个,全部合不上得一个,问问题。

记得先sort再合并。这里假装sort过了。

DATA match nomatch;

SET input32a(IN=a) input32b(IN=b);

IF a=1 and b=1 THEN OUTPUT match;

IF a=0 or b=0 THEN OUTPUT nomatch;

RUN;

具体问题忘了。反正牢记IN=的用法,1是凡是在该数据集中obs就添加,0是凡是该数据集中的obs都减去。

10.lab就记得这么多,总之proc contents 和proc means 和proc print 几乎是每题都要用,所以练熟一点。

凡是问某个obs的某个变量都精准输出,比如问第55个obs的name:

PROC PRINT DATA=printdata (firstobs=55 obs=55);

VAR name;

RUN;

考试体验:

在家考,必须全程挂梯子否则根本打不开。提前半小时开始check-in,网络问题卡掉了一次。先是手机上上传四张考试环境的照片,上传护照的照片,拍摄自己的大头照,然后等待那边工作人员联系你开始你的考试。到你约定的时间,工作人员让你把桌面都清理干净只剩键盘鼠标显示器,让你摄像头拍摄考试环境,把手机啥的放到拿不到的地方,中途不能离开摄像头范围,不能使用草稿纸啥的,不能有人打扰。

网络时好时坏,准备阶段给我重启了一次考试,后来经常连不上远程桌面,等半天才等到页面,有时候又快到打字几乎没延迟,很过山车了。

两个多小时的考试时间一共40题好像,时间绝对充足,全部做完一遍花了一个小时,检查花了半个小时,交卷当场出成绩。讨厌的是网络又卡掉了,导致最后有个结束考试的窗口没按,貌似就不能deliver成绩啥的。

考之前先去官网看看考试界面啥的,很有用,不会抓瞎。

最后,朋友们加油!

就一个excel文件,你们都懂的度娘https冒号斜线斜线pan点baidu点com斜线s斜线1O5NwSihyLaKFNpSpyK-JzA 提取: lelo
1条回复
热度排序

发表回复