04-16-2016 06:25 PM
I'm studying for the SAS Advanced exam and one of the study questions is the following:
When attempting to minimize memory usage, the most efficient way to do group processing when using the MEANS procedure is to use:
A.The BY statement.
B.GROUPBY with the NOTSORTED specification.
C.The CLASS statement
D.Multiple WHERE statements.
I'm pretty sure the answer is A, but I'm confused about answer B. What is GROUPBY? Can it even be used with proc means?
Thanks in advance!
04-17-2016 09:05 AM
I would agree that the answer is A. The BY statement requires that the input dataset is sorted or grouped by the group identifier(s) or indexed appropriately, though.
B: There is no (documented) GROUPBY statement or option in PROC MEANS.
C: The CLASS statement has additional memory requirements (see section "Computational Resources" in Concepts: MEANS Procedure). These are the price for being able to deal with unsorted, non-indexed data.
D: Multiple WHERE statements within the same PROC MEANS step do not make sense (as only the last WHERE statement would take effect). Multiple PROC MEANS steps with different WHERE statements, apart from being obviously inefficient, would first require memory to determine the WHERE conditions.