我的数据集的日期存储为ddMonyy格式的字符串,例如19Dec16。
使用date7转换字符串时。有关SAS日期的信息,有些年份被解释为19年,有些年份被解释为20年。
以下是示例代码
data strDates;
infile cards;
input StringDate $;
cards;
31Dec99
01Jan00
19Dec16
31Dec25
01Jan26
;
run;
data convertTest;
set strDates;
format Date date9.;
Date=input(StringDate,date7.);
run;
今天运行代码(2016年12月19日)会产生以下结果
strDate date
31Dec99 31DEC1999
01Jan00 01JAN2000
19Dec16 19DEC2016
31Dec25 31DEC2025
01jan26 01JAN1926
01Jan00和31Dec25之间的日期分配到2000-2025年,而01Jan26-31Dec99的日期被视为1926-1999年
问题:
如何确定2000年或1900年是否会增加?我怀疑它依赖于运行时(代码运行的日历年?) - 但我无法在SAS文档中找到任何对此的引用。
答案 0 :(得分:2)
有一个选项YEARCUTOFF,根据您的系统和版本,可能有20或26的值。有关更改的详细信息,请参阅KB note 46368。
听起来你正在使用SAS 9.4,这意味着默认值为26:0-25的任何内容都是'20xx',26-99的任何内容都是'19xx'。如果该值对您的数据不起作用(或者自己构建4位数年份),则可以更改YEARCUTOFF
选项。