s******3 发帖数: 57 | 1 新手入门, 应该是道很简单的题目, 可就是没绕出来, 为什么value of macro
variable rc 是low而不是high哪?
data a;
input age;
datalines;
12
12
13
35
36
37
;
run;
%macro test;
data b;
set a nobs=totalobs;
if totalobs > 5 then do;
%let rc = high;
end;
else do;
%let rc = low;
end;
run;
%mend;
&test | c****i 发帖数: 228 | | s******3 发帖数: 57 | | w*******l 发帖数: 18 | 4 %let rc = high;
change to
call symput(rc,'high');
【在 s******3 的大作中提到】 : 新手入门, 应该是道很简单的题目, 可就是没绕出来, 为什么value of macro : variable rc 是low而不是high哪? : data a; : input age; : datalines; : 12 : 12 : 13 : 35 : 36
| s******3 发帖数: 57 | 5
谢谢大侠的指点, 能解释一下这道题考察的要点是什么吗? 为什么以下程序(仍用原始
数据库a) 仍然不能产生'low' value 哪? dataset a only contains 6 observations
so ELSE statement should be executed.....
%macro test;
data out;
set a nobs = totalobs;
%if totalobs > 10 %then %do;
call symput ('rc','high');
%end;
%else %do;
call symput ('rc','low');
%end;
run;
%mend;
%test
%put value of rc is &rc;
【在 w*******l 的大作中提到】 : %let rc = high; : change to : call symput(rc,'high');
| k*******a 发帖数: 772 | 6 你有 SAS ADV PREP GUIDE 那本书吗
327页有讲你这个问题 | s******3 发帖数: 57 | |
|