如何在SAS中按十年分类日期
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在SAS中按十年分类日期相关的知识,希望对你有一定的参考价值。
我有一个包含许多日期的数据集。我想将这些日期分类为一个新的专栏,按十年(20世纪80年代,90年代等)组织它们。
我对如何使用IF,AND和ELSE语句来实现这一点有一个好主意,但我不知道如何让SAS提取年份,并且仅从日期开始将其应用于条件逻辑。
答案
你总是可以使用乘数和intnx()
函数。
使用Allan的样本数据......
data want;
set have;
decade=year(intnx('year10.',dateval,0,'beginning'));
run;
代码的intnx()
部分返回对应于十年开始的日期,然后我们只从中获取年份部分。
year10.
参数告诉它我们想要使用几十年,0
参数意味着将提供的日期转移到当前十年,并且beginning
参数告诉它返回对应于十年开始的日期。
如果您不熟悉使用intnx()
在SAS中执行日期计算,请参阅此处以获得快速入门:https://stackoverflow.com/a/11211180/214994
另一答案
不需要条件逻辑 - 可以使用year()
和floor()
函数的组合和一些简单的算法:
data have;
infile cards;
input dateval date9.;
cards;
01JAN2004
08FEB1996
07MAR1987
14SEP1982
;run;
data want;
set have;
decade=floor(year(dateval)/10)*10;
run;
这使:
以上是关于如何在SAS中按十年分类日期的主要内容,如果未能解决你的问题,请参考以下文章