SAS 日期格式 - 努力寻找更简洁的解决方案

问题描述 投票:0回答:1

我目前不在工作场所,因此我稍后会更新。本质上我想要的是将日期列转换为 2 Januari 2023 (荷兰月份名称)

我已经构建了一个日期表,只是使用子字符串添加了一个额外的列,并将 JAN 替换为 Januari,FEB 替换为 Februari,MAR 替换为 Maart,等等。从那里我只是将其加入到最终表中的每个日期列上(有 8 个日期列)日期列)。

现在一个更简洁的解决方案是为此创建一个格式,但我还无法完成这项工作。您可能拥有的任何参考材料或代码都会非常有用。

我个人已经尝试过这个,阅读了一些文档和chatgpt,但我还没有设法让它工作。

    proc format;
  value $dutch_month_abbrev (default = 20)
  'JAN' = 'Januari'
  'FEB' = 'Februari'
  'MAR' = 'Maart'
  'APR' = 'April'
  'MAY' = 'Mei'
  'JUN' = 'Juni'
  'JUL' = 'Juli'
  'AUG' = 'Augustus'
  'SEP' = 'September'
  'OCT' = 'Oktober'
  'NOV' = 'November'
  'DEC' = 'December';
  
  value mydate (date)
  low-< '01JAN2023'd = ddmmyy.-[$dutch_month_abbrev.]-yyyy4.
  '01JAN2023'd - high = ddmmyy.-[$dutch_month_abbrev.]-yyyy4.;
run;
sas date-format
1个回答
0
投票

我相信 SAS 附带了用于此目的的预构建格式:

DATA output;
    SET input;

    new_date_col = put(old_date_col, NLDDFWDX29.);

RUN;

这里的文档显示了如何在其他语言中实现这一点:

https://www.sfu.ca/sasdoc/sashtml/lgref/z0205146.htm

请注意,29. 长度可以缩短,但需要根据月份名称+日期和年份数字的长度考虑潜在的截断。

© www.soinside.com 2019 - 2024. All rights reserved.