gpt4 book ai didi

sas 输入宏日期,写为 yyyymmdd

转载 作者:行者123 更新时间:2023-12-02 14:40:06 29 4
gpt4 key购买 nike

以下是我如何输入和使用日期作为宏变量:

%let x = %SYSEVALF('01jan2012'd);
%put &x; *see the date as sas sees it;
%put %SYSFUNC(putn(&x,yymmn.)); *see the date as yyyymm;

这很棒,但我厌倦了输入日期 '01jan2012'd 。在特殊情况下,我可能想将日期作为宏变量 y 传递,其中y格式为yyyymmdd ,像这样:

%let y = 20120101;
%let x = %SYSEVALF(&y);

当然,这是行不通的。所以,给定y ,我应该用什么来代替 %let x = %SYSEVALF(&y);x作为日期的宏变量,就像 sas 看到的日期一样?

最佳答案

首先:如果您手动输入它们,请使用 SAS 约定。输入“01JAN2012”。其一,它比 YYYYMMDD 值的可读性更快,而且无论如何,它都是其他 SAS 程序员所期望的。

第二:在任何一种情况下我都不会使用 %SYSEVALF() 。 %let x='01JAN2012'd;几乎在所有情况下都足够了,如果不是,那么你可能会以效率较低或标准的方式做某事。除非您打算在文本中的某处使用 18993(在这种情况下,好吧,您可以使用它),“01JAN2012”是将其存储在宏变量中的正确方法 - 让 SAS 稍后将其转换为 18993。

最后:

%let y=20120101;
%let x=%sysfunc(inputn(&y,YYMMDD8.));

是实现您所要求的最简单的方法。

关于sas 输入宏日期,写为 yyyymmdd,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25730079/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com