如何使SAS不删除数字左侧的0
How to make SAS not remove the 0 to the left of a number
我是 SAS 编程的新手,我正在尝试创建自己的日期格式,即月份名称、年份(4 位数字)和日期(始终为两位数)、问题是从 1 到 9 它将它们视为 1 个单位数,并且它需要为 2(包括 0)。通过以下方式
我有这样的 February20221 我想要这样的 February202201
我做的是这样的:
%let m=%sysfunc(putn(%sysfunc(today()), monname.));
%let y=%sysfunc(putn(%sysfunc(today()), year));
%let d=%sysfunc(putn(%sysfunc(today()), day));
%let date= %sysfunc(cat(&m,&y,&d));
我该如何添加这个?我已经尝试过 cat 函数,put,input...一切,但它总是消除右边的 0。
非常感谢您
Proc Format 是创建自定义日期格式的正确工具。
Proc 格式的情况如下:
- 图片语句创建图片格式。图片格式告诉 SAS 如何显示数字(SAS 日期是整数)。
dtfmt
是格式的名称,默认选项设置长度。
- Other 关键字指定格式应应用于它遇到的所有值。
- %B%Y%0d 是一系列 指令。指令指定应如何显示日期值。您可以看到完整的指令列表 here.
看看这是否适合你
proc format;
picture dtfmt (default=30)
other = '%B%Y%0d' (datatype=date)
;
run;
%let date= %sysfunc(date(), dtfmt.);
%put &date.;
这会打印:
February202201
注意:根据您的Locale System Option,结果可能会有所不同。
我是 SAS 编程的新手,我正在尝试创建自己的日期格式,即月份名称、年份(4 位数字)和日期(始终为两位数)、问题是从 1 到 9 它将它们视为 1 个单位数,并且它需要为 2(包括 0)。通过以下方式
我有这样的 February20221 我想要这样的 February202201
我做的是这样的:
%let m=%sysfunc(putn(%sysfunc(today()), monname.));
%let y=%sysfunc(putn(%sysfunc(today()), year));
%let d=%sysfunc(putn(%sysfunc(today()), day));
%let date= %sysfunc(cat(&m,&y,&d));
我该如何添加这个?我已经尝试过 cat 函数,put,input...一切,但它总是消除右边的 0。
非常感谢您
Proc Format 是创建自定义日期格式的正确工具。
Proc 格式的情况如下:
- 图片语句创建图片格式。图片格式告诉 SAS 如何显示数字(SAS 日期是整数)。
dtfmt
是格式的名称,默认选项设置长度。- Other 关键字指定格式应应用于它遇到的所有值。
- %B%Y%0d 是一系列 指令。指令指定应如何显示日期值。您可以看到完整的指令列表 here.
看看这是否适合你
proc format;
picture dtfmt (default=30)
other = '%B%Y%0d' (datatype=date)
;
run;
%let date= %sysfunc(date(), dtfmt.);
%put &date.;
这会打印:
February202201
注意:根据您的Locale System Option,结果可能会有所不同。