SAS中文论坛

标题: 一个变量小问题 [打印本页]

作者: shiyiming    时间: 2004-2-26 20:45
标题: 一个变量小问题
data w;
   x=1;
   y='a';
   rename x=u;
   rename x=y;
   put x y ;
run;
proc print data=w;
run;
-----------------------------
result in log: 1   a
-----------------------------
result in dataset w: 1
为什么写到数据集中的变量只有一个,而log中有两个变量?
作者: shiyiming    时间: 2004-2-26 23:23
data w;
x=1;
y='a';
rename x=u;
/*rename x=y; */
put x y ;
run;
proc print data=w;
run;
--------------
output:
The SAS System      10:08 Friday, February 26, 2004  14

                                         Obs    u    y

                                          1     1    a
---------------
work.w


                                             u    y

                                              1    a
作者: shiyiming    时间: 2004-2-26 23:46
因为数据集w中已经存在变量y,因此
rename x=y;
语句相当于是用变量x覆盖了变量y,而后再将变量名称更改为y。
因此数据集中只留下了一个变量,变量值为最初X的取值,而变量名称则为y。

之所以在log窗口中出现两个变量的取值是因为变量覆盖(x覆盖y)的操作发生在数据步操作的结尾阶段,此时put语句的操作早已完成。

以上回答不知是否确切,欢迎批评指正。




欢迎光临 SAS中文论坛 (http://mysas.net/forum/) Powered by Discuz! X3.2