2017-07-12 36 views
1

我是SAS新手。我想知道下面的内容。无法弄清楚它对程序做了什么,因为我没有在声明后遇到后续部分中的任何已定义的变量。%让%放变量 - 它对你的sas程序有什么影响

%let cutofftime =%sysfunc(time()); 
%let currdt  = %sysfunc(putn(&cutofftime.,time5.)) ; 
%put &cutofftime. &currdt.; 
+1

如果宏变量从未被引用,那么行可能只是在那里写入执行时间到日志中。 – Tom

回答

2

%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语言。

+0

谢谢你,昆汀!我会记下这一点! :) – ini

相关问题