This macro uses PROC SQL to perform a two-step statistical calculation, typical of analysis of variance (ANOVA). First, it aggregates data by the specified group variable (`gname`), calculating the square of the sum of the target variable (`vname`) and the number of observations (`c`) for each group. Then, it sums these ratios (`sums/c`) for all groups and stores the final scalar result in a specified macro variable (`vout`).
Data Analysis
Type : EXTERNAL
The dataset to be analyzed is passed dynamically as a macro parameter via the `indset` argument.
1 Code Block
PROC SQL
Explanation : Defines the %AHGarea_grp macro. It executes a nested SQL query: the inner query calculates intermediate statistics by group, and the outer query aggregates these results into a global or local macro variable depending on the call context.
Copied!
*get a macro for by group ssq;
%macro AHGarea_grp(indset,vname,gname,vout);/*ƽ*/
proc sql noprint;
select sum(sums/c) into :&vout
from (
select sum(&vname)**2 as sums,count(*) as c
from &indset
group by &gname
)
;
quit;
%mend;
1
*get a macro for by group ssq;
2
%macro AHGarea_grp(indset,vname,gname,vout);/*ƽ*/
3
PROC SQL noprint;
4
select sum(sums/c) into :&vout
5
from (
6
select sum(&vname)**2 as sums,count(*) as c
7
from &indset
8
group BY &gname
9
)
10
;
11
QUIT;
12
%mend;
This material is provided "as is" by We Are Cas. There are no warranties, expressed or implied, as to merchantability or fitness for a particular purpose regarding the materials or code contained herein. We Are Cas is not responsible for errors in this material as it now exists or will exist, nor does We Are Cas provide technical support for it.
SAS and all other SAS Institute Inc. product or service names are registered trademarks or trademarks of SAS Institute Inc. in the USA and other countries. ® indicates USA registration. WeAreCAS is an independent community site and is not affiliated with SAS Institute Inc.
This site uses technical and analytical cookies to improve your experience.
Read more.