如何在 SAS 的 PUT 函数中使用函数

How do I use a function within the PUT function in SAS

如何打印出感兴趣的变量的格式? 注意我已经简化了我的例子

%let var_ = '1sep2014' %放 | VARTYPE(&var_)

我希望这是 return 日志中的格式类型,但它只是 returns | VARTYPE(&1sep2014)

没有简单的方法可以找到与字符串匹配的格式。正如 mjsqu 所说,函数 vartype 没有达到您的期望。

但是,如果您希望在宏变量赋值或 %put 语句中使用数据步函数,您可以使用 %sysfunc() 宏函数。

代码:

/* Assignment of a string to a macro variable*/
/* SAS date literal "DDMMYYYY"d will be automatically evaluated later */
%let v1 = "01sep2014"d;
%put &v1;

/* Use off a datastep function in an assignment, evaluates date literal as number */
%let v2 = %sysfunc(putn(&v1, date9.));
%put &v2;

/* Use of a datastep function in a %put statement */
%put %sysfunc(putn(&v1, yymmdd10.));

输出:

"01sep2014"d
01SEP2014
2014-09-01