如何在 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
如何打印出感兴趣的变量的格式? 注意我已经简化了我的例子
%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