我是SAS新手。我想知道下面的内容。无法弄清楚它对程序做了什么,因为我没有在声明后遇到后续部分中的任何已定义的变量。%让%放变量 - 它对你的sas程序有什么影响
%let cutofftime =%sysfunc(time());
%let currdt = %sysfunc(putn(&cutofftime.,time5.)) ;
%put &cutofftime. &currdt.;
我是SAS新手。我想知道下面的内容。无法弄清楚它对程序做了什么,因为我没有在声明后遇到后续部分中的任何已定义的变量。%让%放变量 - 它对你的sas程序有什么影响
%let cutofftime =%sysfunc(time());
%let currdt = %sysfunc(putn(&cutofftime.,time5.)) ;
%put &cutofftime. &currdt.;
%let语句用于创建宏变量。
第一条语句:
%let cutofftime =%sysfunc(time());
使用时间()函数来确定当前的时间。它将当前时间返回为自午夜以来的秒数的数值。
第二条语句:
%let currdt = %sysfunc(putn(&cutofftime.,time5.)) ;
使用PUTN()到数字时间值(也就是现在保存在宏变量CUTOFFTIME),以一个漂亮的格式化值喜欢22:30的转换。
因此,在两个%let语句运行之后,您创建了两个宏变量。然后%PUT语句用于两个宏观变量的值写入日志:
%put &cutofftime. &currdt.;
使用%PUT语句写入宏变量到日志中值是调试宏代码的有效途径,就像使用PUT语句将数据步骤变量的值作为数据步骤调试工具写入日志一样。当我在下午9点32分运行代码,日志显示:
3 %put &cutofftime. &currdt.;
77537.809 21:32
也就是说,如果你是新的SAS,你应该避免试图了解宏语言在同一时间,因为你正在学习SAS语言。
谢谢你,昆汀!我会记下这一点! :) – ini
如果宏变量从未被引用,那么行可能只是在那里写入执行时间到日志中。 – Tom