楼主: 6203479170
7279 6

关于yearcutoff问题; [推广有奖]

  • 0关注
  • 0粉丝

硕士生

97%

还不是VIP/贵宾

-

威望
0
论坛币
90 个
通用积分
0.0600
学术水平
2 点
热心指数
7 点
信用等级
2 点
经验
292 点
帖子
125
精华
0
在线时间
218 小时
注册时间
2009-8-2
最后登录
2022-1-14

相似文件 换一批

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
proc options option=yearcutoff;
run;
data _null_;
date="01JAN19"d;
put date=date9.;
date="01JAN20"d;
put date=date9.;
run;
data _null_;
date="01JAN1919"d;
put date=date9.;
date="01JAN1920"d;
put date=date9.;
run;

输出结果依次是
date=01JAN2019
date=01JAN1920
date=01JAN1919
date=01JAN1920

为什么第一个结果与第二个相差如此之大?
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:yearcutoff cutoff year ARC Off yearcutoff

回帖推荐

欢薯er 发表于5楼  查看完整内容

YEARCUTOFF=选项 在读取日期数据时,如果你用两位数表示年份,SAS系统在将该日期转化为SAS日期值时会自动加上前两位。自动加上的前两位取决于SAS系统的一个选项:YEARCUTOFF=。它的缺省值是1990。例如: 04/15/00 被认为是 04/15/1900 15APR95 被认为是 15APR1995 options yearcutoff=1960; data _null_; date="01JAN70"d; put date=date9.; date="01JAN49"d; put date=date9.; run; 结果: Date=01JAN19 ...

本帖被以下文库推荐

沙发
jingju11 发表于 2010-9-16 20:41:38 |只看作者 |坛友微信交流群

Here since the YEARCUTOFF= was set to 1920, all 2-digit years are assumed to be in the period 1920 through 2019. This means that
20-99 === 1920-1999
00-19 === 2000-2019
Clearly, that only works if you specified two-digit years.


The funny results are because the dates you gave are just on the cut-off points.


JingJu

使用道具

藤椅
海桐浪迹 发表于 2013-5-4 23:07:27 |只看作者 |坛友微信交流群
great.

使用道具

板凳
海桐浪迹 发表于 2013-5-4 23:09:11 |只看作者 |坛友微信交流群
the default yearcutoff is 1920. The year span is from 1920 to 2019, 100 years.

使用道具

报纸
欢薯er 发表于 2016-3-21 09:29:48 |只看作者 |坛友微信交流群
YEARCUTOFF=选项

在读取日期数据时,如果你用两位数表示年份,SAS系统在将该日期转化为SAS日期值时会自动加上前两位。自动加上的前两位取决于SAS系统的一个选项:YEARCUTOFF=。它的缺省值是1990。例如:
04/15/00   被认为是    04/15/1900
15APR95  被认为是    15APR1995

options yearcutoff=1960;
data _null_;
date="01JAN70"d;
put date=date9.;
date="01JAN49"d;
put date=date9.;
run;
结果:
Date=01JAN1970
Date=01JAN2040
YEARCUTOFF=选项决定采用两位数表示年份时所在的100年。YEARCUTOFF=1900表示所有用两位数表示的年份均在1900--1999之间。
你可以用OPTIONS语句或用OPTIONS窗口来改变YEARCUTOFF=选项,例如:
Options yearcutoff=1950;
run;

该选项改变以后,用两位数表示的年份在转化为SAS日期值时,其所在的100年就变为1950-2049之间了。例如:

04/15/00   被认为是    04/15/2000
15APR95  被认为是    15APR1995

5)注意事项

读取日期和时间数据时应注意以下几点:
A.小心YEARCUTOFF=选项的缺省设置,并在必要时改变它
B.设定合适的输入格式
C.设定合适的域宽以读入完整的日期值
D.SAS日期值从A.D. 1582年到A.D. 20000年
E.SAS系统对闰年有调整,但忽略闰秒

使用道具

地板
ccutyuyu 发表于 2017-12-19 14:28:48 |只看作者 |坛友微信交流群
楼上笔误了
Date=01JAN2049

使用道具

7
superguy333 发表于 2017-12-19 22:03:12 |只看作者 |坛友微信交流群
YEARCUTOFF 默认值是1920,时间跨度是1920-2019 共100年,前80年在20世纪(图中1900s),后20年在21世纪(图中2000s)。 如果此时给YEARCUTOFF赋值一个2位数,此两位数如果是在20-99之间,则认为是在20世纪即1920-1999年,此两位数如果是在0-19之间,则认为是在21世纪即2000-2019.

当 YEARCUTOFF=1950时,时间跨度是1950-2049 共100年,前50年在20世纪(1900s),后50年在21世纪(2000s)。如果此时给YEARCUTOFF赋值一个2位数,此两位数如果是在50-99之间,则认为是在20世纪即1950-1999年,此两位数如果是在0-49之间,则认为是在21世纪即2000-2049.

注意:如果YEARCUTOFF=YYYY,yyyy是4位数时(1990),结果不受影响。如果yyyy前面有0,则要剔除。例如
当 yearcutoff=1990   且年度变量YYYY为0076,则取值76,而前面讲过90-99表示1990-1999  ,0-89表示2000-2089,因此而76表示的年份为2076.



year'cutoff.PNG (30.65 KB)

year'cutoff.PNG

使用道具

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-5-1 16:25