我在任何 DATA
步骤之外使用这个位。
%let sth = 20191111;
%let sthelse=SUBSTR(INPUT(&sth.,12.),1,4);
%put &sthelse.;
它不会产生“2019”,这是我所期望的,而是
SUBSTR(INPUT(20191111,12.),1,4)
这里出了什么问题?
最佳答案
使用宏函数 %SUBSTR
提取其参数的一部分。请记住,宏值只是字符值(不要与数据步骤字符变量和值混淆)并且没有明确的数值,即使宏值由所有数字组成也是如此。
%let sth = 20191111;
%let first4 = %substr(&sth,1,4);
关于SAS 不评估 %PUT 的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59071978/