P*****i 发帖数: 63 | 1 29.A frequency report of the variable Jobcode in the Work.Actors data set is
listed below.
Jobcode Frequency Percent Cumulative
Frequency Cumulative
Percent
Actor I 2 33.33 2 33.33
Actor II 2 33.33 4 66.67
Actor III 2 33.33 6 100.00
Frequency Missing = 1
The following SAS program is submitted:
data work.joblevels;
set work.actors;
if jobcode in ('Actor I', 'Actor II') then
joblevel='Beginner';
if jobcode='Actor III' then
joblevel='Advanced';
else joblevel='Unknown';
run;
Which of the following represents the possible values for the variable
joblevel in the
Work.Joblevels data set?
a. Advanced and Unknown only
b. Beginner and Advanced only
c. Beginner, Advanced, and Unknown
d. ' ' (missing character value)
Correct answer: a
没有太看懂这题,求各位解答,谢谢。
我的理解是,先用proc freq得知Jobcode在数据里有六个记录,Actor I, II, III各有
两个,
另外还有一个记录是missing.
然后在读work.actors到新data setwork.joblevels里时,新建的变量joblevel由两个
if statement和一个else来控制赋值。
这里我知道两个if和else不是完全的mutual exclusive(因为没写成if-else if-else)
,所以每读一个记录两个if 都会依次判定一遍。
但既然Actor I, II, III全都有,那么joblevel有可能是Beginner或者Advanced. 而
missing的那个记录归到unknown里。
所以答案为什么不是C呢?为什么属于Actor I和II范畴的归类的beginner赋值后来会被
冲掉?
这是我的理解:
obs jobcode joblevel
1 Actor I beginner
2 Actor I beginner
3 Actor II beginner
4 Actor II beginner
5 Actor III advanced
6 Actor III advanced
7 missing unknown
请帮忙解惑,多谢啦。 | g****w 发帖数: 8 | 2 Just ignore the 1st if statement since the joblevel in the 1st if statement
will be replaced by the joblevel in 2nd if statement. 'Actor I', 'Actor II'
will be marked as 'Unknown' from the 2nd if statement. | P*****i 发帖数: 63 | 3 明白了,有道理。
【在 g****w 的大作中提到】 : Just ignore the 1st if statement since the joblevel in the 1st if statement : will be replaced by the joblevel in 2nd if statement. 'Actor I', 'Actor II' : will be marked as 'Unknown' from the 2nd if statement.
|
|