如何使用SAS SQL基于日期字段的值选择变量(名称中包含年份)进行计算

时间:2015-12-03 21:45:11

标签: sql db2 sas

使用SAS SQL(或只是SAS),我需要根据不同日期字段的年份部分使用变量进行计算。变量的名称包含我需要从另一个日期变量的年份部分匹配的年份。如何选择用于计算的正确变量?

例如,我需要选择使用哪一个:

GRADE_2013
GRADE_2014
GRADE_2015 

通过查看格式15JAN2014的日期字段 - 所以从2014年开始,我想从GRADE_2014中获取值以用于其他计算。

3 个答案:

答案 0 :(得分:2)

你有几个选项,一个是带有年份索引的数组,另一个是查找变量值的VVALUEX函数。

Data One;
set Have;
array grades(2013:2015) grade_2013-grade_2015;

*Array method;
variable_want1 = grades(year(date_field));

*VValueX method;
variable_want2 = vvalues('grades_'||put(year(date_field), 4.));
run;

答案 1 :(得分:0)

通常,如果您可以将数据转换为更规范化的格式,则此类问题会变得更加容易。

因此,不是每个都有三个grade_YYYY变量和年份后缀,而是将每个记录转换为三个记录,变量为YEAR和GRADE。

答案 2 :(得分:0)

非常感谢你们给出了很好的答案......我是一个新手,所以我必须至少开始使用非阵列方法。