检测SAS中最大变量值的最快方法是什么?



我正在尝试找到一种检测日期变量最大值的有效方法。我每天将收到的数据的一个警告是,日期记录为文本。

我通常会以下面的方式进行:

proc sql noprint ;
 select MAX(MDY(input(SUBSTRN(MyDate, 6, 2),2.), input(SUBSTRN(MyDate, 9, 2),2.), input(SUBSTRN(MyDate, 1, 4),4.))) as max_date FORMAT=date9.
 into :max_date
 from FooData;
quit;

在这种情况下,数据包含超过100m的行,每天运行此代码似乎很麻烦。谁能想到一种更有效的方法来解决这个问题?

yyyymmdd的好处是,当您将其排序为字符串时,它也最终被分类为日期(例如,例如mm/dd/yy)。因此,只需参加max()

您当然可以通过使用单个信息来在日期读取而不是3个子字符串计算来简化select语句。显然,它需要为每个记录做到这一点,因此它仍然会减慢它的速度,但希望目前不那么多。

proc sql noprint ;
 select MAX(input(mydate,yymmdd10.)) as max_date FORMAT=date9.
 into :max_date
 from FooData;
quit;

相关内容

最新更新