我是SAS的新手。我想知道下面的内容是做什么的。无法弄清楚它对程序的作用,因为我在声明之后没有遇到后续部分中的任何已定义变量。
%let cutofftime =%sysfunc(time());
%let currdt = %sysfunc(putn(&cutofftime.,time5.)) ;
%put &cutofftime. &currdt.;
答案 0 :(得分:2)
%let语句用于创建宏变量。
第一句话:
%let cutofftime =%sysfunc(time());
使用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语言的同时学习宏语言。