【发布时间】:2018-02-06 17:44:21
【问题描述】:
我想计算按另一列分组的累积最大值。
假设我有这些数据:
data have;
input grp $ number;
datalines;
a 3
b 4
a 5
b 2
a 1
b 8
;
我想要的输出是:
data want;
input grp $ cummax;
a 3
b 4
a 5
b 4
a 5
b 8
;
我的真实案例将涉及多个分组列 + 过滤器,理想情况下,此累积最大值将同时在多个列上计算。
我主要关心的是计算效率,因为我将在包含 10 到数亿行的表上运行它。欢迎使用 Proc SQL 或原生 SAS。
如有必要,行可能会被打乱。
系统信息
proc product_status;run;
For Base SAS Software ... Custom version information: 9.3_M2 Image version information: 9.03.01M2P080112 For SAS/STAT ... Custom version information: 12.1 Image version information: 9.03.01M0P081512 For SAS/GRAPH ... Custom version information: 9.3_M2 For SAS/CONNECT ... Custom version information: 9.3_M2 For SAS OLAP Server ... Custom version information: 9.3_M1 For SAS Enterprise Miner ... Custom version information: 12.1 Image version information: 9.03.01M0P081512 For SAS Integration Technologies ... Custom version information: 9.3_M2 For SAS/ACCESS Interface to Oracle ... Custom version information: 9.3_M1 For SAS/ACCESS Interface to PC Files ... Custom version information: 9.3_M2
proc setinit;run;
Product expiration dates: ---Base SAS Software 31JUL2018 ---SAS/STAT 31JUL2018 ---SAS/GRAPH 31JUL2018 ---SAS/CONNECT 31JUL2018 ---SAS OLAP Server 31JUL2018 ---SAS Enterprise Miner 31JUL2018 ---MDDB Server common products 31JUL2018 ---SAS Integration Technologies 31JUL2018 ---SAS Enterprise Miner Server 31JUL2018 ---SAS Enterprise Miner Client 31JUL2018 ---Unused OLAP Slot 31JUL2018 ---SAS Enterprise Guide 31JUL2018 ---SAS/ACCESS Interface to Oracle 31JUL2018 ---SAS/ACCESS Interface to PC Files 31JUL2018 ---SAS Metadata Bridges for Informatica 31JUL2018 ---SAS Metadata Bridges for Microsoft SQL Server 31JUL2018 ---SAS Metadata Bridge for Oracle 31JUL2018 ---SAS Workspace Server for Local Access 31JUL2018 ---SAS Workspace Server for Enterprise Access 31JUL2018 ---SAS Table Server 31JUL2018 ---DataFlux Trans DB Driver 31JUL2018 ---SAS Framework Data Server 31JUL2018 ---SAS Add-in for Microsoft Excel 31JUL2018 ---SAS Add-in for Microsoft Outlook 31JUL2018 ---SAS Add-in for Microsoft PowerPoint 31JUL2018 ---SAS Add-in for Microsoft Word 31JUL2018
【问题讨论】:
-
您有 SAS ETS 许可吗?即使是简单的案例,您也尝试过什么?您应该使用几个分组变量来扩展您的样本数据,以更好地反映您的实际情况。
-
我有很好的机会,但我不知道如何检查它:)。我提供了简短的数据来说明我的观点,但你说得对,我将用一个更复杂的案例进行编辑。
-
proc setinit;run;查看已获得许可的内容,proc product_status;run;查看已安装的内容。 -
我在上面添加了我的系统信息,我需要更多时间来想出一个复杂的示例表,同时解决简单的示例会有很大的帮助。
-
以下解决方案有效。除非您可以通过并使用一些 DBMS 函数,否则我不会在这里推荐 SQL。您没有允许您使用 PROC EXPAND 的 SAS/ETS。
标签: sas