MEANSプロシジャ


<数値データの集計>
 【例題】3クラス(a,b,c)それぞれの身長と体重の平均、最小値、最大値、標準偏差を求める。
/*テストデータ*/
data test;
   infile cards dsd dlm=" ";
   length group $10 name $10 ;
   input group $ name $ height weight;  
cards;
a red 147.5 46.1
a blue 150.3 46.7
a brown 182.2 61.3
a green 165.0 55.4
b pink 178.9 66.5
b black 180.4 70.0
b yellow 152.0 58.4
c white 161.3 54.8
c gray 174.5 63.7
;
run;
 
/*グループ分け変数でソートする*/     
proc sort data = test out=out_test;  
  by group ;
run;
/*集計*/
/*基本統計量が縦に算出される*/
proc means data =out_test ;
  var height weight;               
  by group ;
  output out = out1 ;
run;
/*あらゆる可能なサブグループの組み合わせごとに出力*/
proc means data = out_test ; 
  var height weight;
  class group ;
  output out = out2 ;
run;
 
/*_TYPE_ の値が最大値(class変数の組み合わせのうち最も高いサブグループ) のデータのみ出力*/
proc means data = out_test nway ;
  var height weight;
  class group ;
  output out = out3 ;/*_TPPE_ = 1 のデータのみ出力*/
run;
 
/*optionにより、_TYPE_ = 0 がbyグループの最後に表示される*/
proc means data = out_test descending; 
  var height weight;
  class group ;
  output out = out4 ;
run;
/*基本統計量が横に出力する(output画面と同じようなデータセットを作成する)*/
proc means data = out_test ;
  var height weight;
  by group ;
  id height weight;
  output out = out5 n = n1 n2  mean(weight) = maean std = std1 std2 min = min1 min2 max = max1 max2;
run;
/*出力先をoutputからデータセットへ変更する*/
ods trace on ;
ods output Means./*ByGroup1.*/Summary = out6 ; /*by指定する時は、groupごとにoutput名を指定する*/
 
proc means data = out_test ;
  var height weight ;
  class group ;
run;
 
ods trace off ;



最終更新:2008年10月12日 23:55
ツールボックス

下から選んでください:

新しいページを作成する
ヘルプ / FAQ もご覧ください。