繁体   English   中英

SAS DO LOOP 与特定日期

[英]SAS DO LOOP with specific dates

我想创建一个数据集,我只想保留 5 个特定日期。 所以我的 &date 是 31mar2020,&enddate 是 31mar2025,我只想每年保持 31mar 到 2025 年。

使用下面的代码,它可以为每天 31mar2025 创建日期,仅此而已,所以我只想保留 5 个特定日期。

我怎样才能做到这一点?

谢谢

  DATA LOOP;FORMAT ROLL_BASE_DT DATE9.;DO  ROLL_BASE_DT =&DATE TO &ENDdate;OUTPUT;END;RUN;

enter code here

enter code here

您可以在 DO 语句中使用逗号来列出多个值。

do date='31mar2021'd,'31mar2022'd,'31mar2023'd,'31mar2024'd,'31mar2025'd;
  ...
end;

您可以改为遍历 YEAR 值。

do year=2021 to 2025;
   date=mdy(3,31,year);
  ...
end;

您可以使用 INTNX() 将日期增加 YEAR。 您可以使用 INTCK() 来计算运行循环的次数。

do index=0 to intck('year',&DATE,&ENDdate);
  date=intnx('year',&date,index,'s');
  ...
end;

如果只是您想要的 5 个日期,您可以使用卡片输入(我知道但从未亲自使用过)。

或者,不是使用循环,而是在每次设置值后使用 output 关键字单独设置值。 那应该这样做。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM