如何在SAS中将子组与整个组进行比较?

如何在SAS中将子组与整个组进行比较?,sas,survey,Sas,Survey,我正在使用SAS 9.4执行分析。因为我的数据来自一项复杂的调查,所以我需要使用PROC SURVEYMEANS/SURVEYFREQ/SURVEYREG等来说明重量。我的原始数据集大约有1000个观测值 我有一个子组(n=300),我使用sel=1作为变量来表示这个组。现在我想比较一下子组(n=300)和原始组(n=1000)之间的一些特性。我想知道怎么做。我试过这个: proc surveyfreq data=mydata; stratum str; cluster clu; weight

我正在使用SAS 9.4执行分析。因为我的数据来自一项复杂的调查,所以我需要使用
PROC SURVEYMEANS/SURVEYFREQ/SURVEYREG
等来说明重量。我的原始数据集大约有1000个观测值

我有一个子组(n=300),我使用
sel=1
作为变量来表示这个组。现在我想比较一下子组(n=300)和原始组(n=1000)之间的一些特性。我想知道怎么做。我试过这个:

proc surveyfreq data=mydata;
stratum str;
cluster clu;
weight wt;
table sel*(c1 c2 c3 c4)/chisq;
run;

proc surveymeans data=mydata nomcar nobs mean stderr ;
stratum str;
cluster clu;
weight wt;
var c5 c6;
domain sel/diffmeans;
run;
然而,通过这种方式,我只能得到所选组(n=300)和未选组(n=700)之间的比较。我想知道如何将所选组(n=300)与整个组(n=1000)进行比较


谢谢大家!

您可以将数据自身堆叠起来,并在此基础上创建一个新的分类变量

由于重复,此调整可能会导致
调查人员
错误地执行某些计算

data tweak;
  * stack selected obs with all obs;
  set 
    have(where=(sel=1) in=one)
    have(in=all)
  ;

  * new category;
  if one then 
    selcat = 'Only Sel';
  else
    selcat = 'All';
run;

proc surveymeans data=tweak nomcar nobs mean stderr ;
  stratum str;
  cluster clu;
  weight wt;
  var c5 c6;
  domain selcat / diffmeans ;
run;