Sas Limit Proc表示仅输出完整的行

Sas Limit Proc表示仅输出完整的行,sas,Sas,我有一个简单的proc-means过程,我希望将输出限制为仅完成行 data test_dat; input group $ subgroup $ time variable1 variable2; cards; A xxxx 1 100 2.50 A xxxx 2 200 2.50 A xxxx 3 300 2.50 A xxxx 4 100 3.00 A zzzz 1 500 1.00 A zzzz 2 450

我有一个简单的proc-means过程,我希望将输出限制为仅完成行

   data test_dat;
        input group $ subgroup $ time variable1 variable2;
    cards;
    A xxxx 1 100 2.50
    A xxxx 2 200 2.50
    A xxxx 3 300 2.50 
    A xxxx 4 100 3.00
    A zzzz 1 500 1.00
    A zzzz 2 450 1.00
    A zzzz 3 700 1.50
    A zzzz 4 600 1.50
    B yyyy 1 200 4.00
    B yyyy 2 100 5.00
    B yyyy 3 300 4.00
    B yyyy 4 250 5.00
    ;
    run;

    proc means data=test_dat mean sum;
        class group subgroup;
        var variable2 variable1;
        output out=stuffout(drop=_type_ _freq_ dropme ohheidropme2plz) mean=variable2_mean dropme sum=ohheidropme2plz variable1_sum;
    run;
默认情况下,proc的意思是给我9行输出,而我只需要3行7-9。我知道我可以执行另一个数据步骤来消除这些行,但我知道必须有一种更优雅的方法。ps它并不总是第7-9行,所以这不是一个通用的解决方案


谢谢

看起来您需要的是proc means nway选项。请看这里:

通过使用types或ways语句,也可以获得相同的结果


在这里,您可以使用方法2,也就是说,显示所有可能的类变量对的组合。关键字nway只是指定ways=n,其中n是您拥有的类变量的数量。默认情况下,proc means包括表示总计的所有可能行,例如组变量给定值的总和和平均值,而不考虑子组变量。方法2指定您只对正好有两个类变量的行感兴趣,在本例中,这两个变量都是这些行。

看起来您要查找的是proc means nway选项。请看这里:

通过使用types或ways语句,也可以获得相同的结果


在这里,您可以使用方法2,也就是说,显示所有可能的类变量对的组合。关键字nway只是指定ways=n,其中n是您拥有的类变量的数量。默认情况下,proc means包括表示总计的所有可能行,例如组变量给定值的总和和平均值,而不考虑子组变量。方法2指定您只对正好有两个类变量的行感兴趣,在本例中,这两个变量都是这些行。

另一个有趣的选项是类型[,它允许您选择所有可能的变量组合感谢Nate。这正是我所需要的。nway选项比ways 2更适合我,因为我并不总是知道宏加载了多少类变量。我尝试过按类型执行where语句,但不够笼统。谢谢大家。另一个有趣的选项是types[,它允许您选择所有可能的变量组合感谢Nate。这正是我所需要的。nway选项比ways 2更适合我,因为我并不总是知道宏加载了多少类变量。我尝试过按类型执行where语句,但不够笼统。谢谢大家。
proc means data=test_dat mean sum nway;
        class group subgroup;
        var variable2 variable1;
        output out=stuffout(drop=_type_ _freq_ dropme ohheidropme2plz) mean=variable2_mean dropme sum=ohheidropme2plz variable1_sum;
    run;