按时地方 发表于 2012-10-19 20:17 
沙发的这位朋友,先谢谢您,用您的程序跑出来是这样的。
NOTE: 字符值已转换为数值,位置:(行:列) ...
1. 你的程序中首先将arch0赋值为0,决定arch0为一个数值型。而后边又试图将字符串赋值给这个变量,这造成了
“NOTE: 字符值已转换为数值,位置:(行:列)。”
2. 至于警告“
WARNING: 没有解析符号引用 A。”,我感觉应该是resolve()执行之前,call symput那一句还没有执行。
36 data try;
37 variable="ARCH0";
38 call symput('a',variable);
39 if _n_=1 then arch0=resolve('&a');
40 put arch0=;
41
42 x=4;
43 if x=5 then call symputx('b',x);
44 arch1=resolve('&b');
45 put arch1=;
46 run;
arch0=ARCH0
WARNING: Apparent symbolic reference B not resolved.
arch1=&b
NOTE: The data set WORK.TRY has 1 observations and 4 variables.
NOTE: DATA statement used (Total process time):
real time 0.01 seconds
cpu time 0.01 second