0

我想创建一个数据集,我只想保留 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
4

2 回答 2

2

您可以在 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;
于 2020-04-22T12:29:09.240 回答
0

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

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

于 2020-04-22T10:19:01.340 回答