全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
6522 6
2010-05-04
45. The SAS data set TEMP has the following distribution of values for variable A:
TEMP

A Frequency
1 500,000
2 500,000
6 7,000,000
8 3,000

Which SAS pr ogram
requires the least amount of CPU resources to be processed?  

A.data new; set temp; if a = 8 then b = 'Small '; else if a in(1, 2) then b = 'Medium'; else if a
= 6 then b = 'Large'; run;  

B.data new; set temp; if a in (1, 2) then b = 'Medium'; else if a = 8 then b = 'Small'; else if a
= 6 then b = 'Large'; run;  

C.data new; set temp; if a = 6 then b = 'Large '; else if a in (1, 2) then b = 'Medium'; else if
a = 8 then b = 'Small'; run;  

D.data new; set temp; if a in (1, 2) then b = 'Medium'; else if a = 6 then b = 'Large '; else if
a = 8 then b = 'Small'; run;  

Answer: C

请问为什么是C而不是D啊? 这是adv130上的题目
二维码

扫码加我 拉你入群

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

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

全部回复
2010-5-4 17:01:35
1# lujiayi
if-else 执行机制是一旦某个if条件为真则跳出整个if-else,否则依次逐个对每个if条件进行判别。
举例说,第a1行数据第b1个if条件为真,第a2行数据第b2个if条件为真
那么若b1>b2则,第a1行数据比起第a2行执行这个if-else语句要进行更多(b2-b1)if条件的判断,所有需要更长的CPU时间

基于这个判断,在变量偏度很高的情况下,为了减少理论上的CPU时间,应将FREQ较高的取值分支写在较前的if-else分支中。

这仅仅是一道考题,实际运用中,或许FORMAT会是一个不错的选择。对于不同分布的变量取值,select-when和if-else的选择也是一个有趣的问题......

希望对你有帮助
二维码

扫码加我 拉你入群

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

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

2010-5-4 17:28:12
我来补充一下:
是不是这个意思 soporaeternus ?
A Frequency
1 500,000
2 500,000
6 7,000,000
8 3,000
现在根据FREQUENCY来判断,6最多,其次是1 2 然后是8
如果开始if 来判断,选择的是8 的话,那么就开始寻找数据等于8的对象,寻找的时间应该类似对整个数据进行一次检查一下,是8还是不是8,那么有50W个1 ,50W个2, 700W个6,3000个8,那么就要比对50W+50W+700W+3000次,判断成功了,那么接下来检查是不是1 和2,同样来进行一次检查,但是这次检查的对象除去了3000个8,比对50W+50W+700W次,最后是6,只要比对700W次,等于说这个时间里面最大的比重是FREQ大的数字,比对8 比对1 2 的时候都要去比对是不是等于6,比一次就是700W,两次就是700W+700W总的时间就包括了3个700W
如果一开始就是6,那么就只花一次700W的比对,后面就轻松的了,花的时间也少了
非计算机认识
话不专业但是应该好理解吧
二维码

扫码加我 拉你入群

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

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

2010-5-4 17:36:24
3# crackman
不是。
是对if-else分支判断的次数
写在越后面的if语句,若某条数据对于它来说为真,则之前它做的判别就越多(之前的判别结果都是0)。
二维码

扫码加我 拉你入群

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

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

2010-5-4 17:49:20
4# soporaeternus
恩,这里C选项的判断计算量是700W×1+50w×2+50w×2+3K×3。
二维码

扫码加我 拉你入群

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

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

2010-5-4 17:59:24
搞计算机非计算机专业人士的差距啊
向楼上两位学习
牛人!
二维码

扫码加我 拉你入群

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

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

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群