sql和proc平均值之间结果的SAS差异

sql和proc平均值之间结果的SAS差异,sas,sas-macro,proc-sql,Sas,Sas Macro,Proc Sql,我想要一个宏变量中某个变量的加权平均值。我的var是zindi&aa,我的体重是wprm&aa 我试图理解两种方法: 带有过程sql的一个 proc sql noprint; select mean(zindi&aa. * wprm&aa.)/sum(wprm&aa.) into :Mean_zindi_aa from Panel(where=(annee&ap.<="&nais18" )); quit; procsqlnoprin

我想要一个宏变量中某个变量的加权平均值。我的var是zindi&aa,我的体重是wprm&aa

我试图理解两种方法:

带有过程sql的一个

proc sql noprint;
    select mean(zindi&aa. * wprm&aa.)/sum(wprm&aa.) into :Mean_zindi_aa
    from Panel(where=(annee&ap.<="&nais18" ));
quit;
procsqlnoprint;
选择平均值(zindi&aa.*wprm&aa.)/和(wprm&aa.)分为:平均值(zindi&aa.)
从面板(其中=(annee&ap.
procsqlnoprint;
选择sum(zindi&aa.*wprm&aa.)/sum(wprm&aa.)进入:Mean_zindi_aa
从面板(其中=(annee&ap.
procsqlnoprint;
选择sum(zindi&aa.*wprm&aa.)/sum(wprm&aa.)进入:Mean_zindi_aa

从面板(其中=(annee&ap.将过程SQL更改为:

proc sql noprint;
    select SUM(zindi&aa. * wprm&aa.)/sum(wprm&aa.) into :Mean_zindi_aa
    from Panel(where=(annee&ap.<="&nais18" ));
quit;
procsqlnoprint;
选择SUM(zindi&aa.*wprm&aa.)/SUM(wprm&aa.)进入:Mean_zindi_aa

从面板(其中=(annee&ap.将过程SQL更改为:

proc sql noprint;
    select SUM(zindi&aa. * wprm&aa.)/sum(wprm&aa.) into :Mean_zindi_aa
    from Panel(where=(annee&ap.<="&nais18" ));
quit;
procsqlnoprint;
选择SUM(zindi&aa.*wprm&aa.)/SUM(wprm&aa.)进入:Mean_zindi_aa

从面板(其中=(annee&ap.一个供将来参考的提示..你只需将公式分解成不同的变量,并在有限数量的观察数据上工作,就可以手动计算答案,这样你就能很快发现这个问题。是的,我有点尴尬。我只是我想知道如何使用sql,所以我错误地认为这是我使用sql的方式的问题,而不是检查公式a技巧以供将来参考。你只需将公式分解成不同的变量,并在有限数量的观察中工作,就可以计算出答案,从而帮助自己调试类似的问题用手。这样你会很快发现这个问题。是的,我有点尴尬。我刚刚开始知道如何使用sql,所以我错误地认为这是我使用sql的方式问题,而不是检查公式
proc sql noprint;
    select SUM(zindi&aa. * wprm&aa.)/sum(wprm&aa.) into :Mean_zindi_aa
    from Panel(where=(annee&ap.<="&nais18" ));
quit;