【发布时间】:2018-11-02 16:28:27
【问题描述】:
我有一个年度调查,我会对其进行一些验证。我只想对当前年份进行验证(surveyYear 列中的最大年份)。该调查每年都会进行,因此我希望将其自动化,而不是编写当前年份。所以当 2019 年的调查到来时,我不需要更改代码。
是否可以在 set 语句中过滤surveyYear 以仅取列中的最大数字?我尝试了不同的组合,但没有成功。如果不可能的话,我怎么能解决它呢
我也想在 datastep 中而不是在 proc 中执行此操作,因为验证代码在 set 语句之后的 want datastep 中。
data have;
input surveyYear id score varChar$10. ;
datalines;
2016 1 10 Yes
2016 2 6 Yes
2016 3 8 Yes
2016 4 . No
2017 5 6 No
2017 6 5 No
2017 7 12 IU
2017 8 3 IU
2017 9 2 IU
2017 10 15 99999
2018 11 0 .
2018 12 . No
2018 13 10 Yes
2018 14 8 No
2018 15 11 No
2018 16 3 IU
;
run;
data want;
set have (where=(surveyYear > 2017));
/* I would like to have something that states the max surveyYear instead */
/* (where=(surveyYear = max(surveyYear))) */
run;
【问题讨论】: