我有一个简单的proc表示过程,我希望将输出限制为只完成行。
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行输出,而我只需要三行(7-9行)。我知道我可以执行另一个数据步骤来消除这些行,但我知道必须有一种更优雅的方法。(ps--它并不总是7-9行,所以这不能作为一个通用解决方案)。
谢谢
发布于 2014-06-09 18:56:35
看起来你要找的是proc的意思是nway选项。见此处:http://support.sas.com/documentation/cdl/en/proc/61895/HTML/default/viewer.htm#a000146729.htm
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;您还可以通过使用类型或ways语句来获得相同的结果。
这里您可以使用ways 2;,意思是显示类变量的所有可能的对的组合()。关键字nway只是指定ways = n,其中n是您拥有的类变量的数目。默认情况下,proc方法包括表示总计的所有可能行(例如,组变量的给定值的求和和平均值,而不考虑子组变量)。Ways 2指定您只对有两个类变量的行感兴趣,在本例中,这些行都是类变量。
https://stackoverflow.com/questions/24126759
复制相似问题