2

sas の proc univariate を使用して、sas でヒストグラムを作成しようとしています。しかし、クラス幅が等しいヒストグラムが得られます。1から10までの第1クラスの間隔と10から100までの第2クラスの間隔を持つヒストグラムが必要だとします。

 proc univariate data=sasdata1.dataone;
 var sum;
 histogram sum/ midpoints=0 to 10 by 10 10 to 100 by 90 ;run;

しかし、これはうまくいきません。これを行う正しい方法は何ですか?

4

1 に答える 1

2

私の知る限り、UNIVARIATE ではできませんが、SGPLOT/GPLOT/etc. 手順は機能します。データをカテゴリ変数にビン化し、その変数を VBAR にするだけです。

頻度(パーセントではない)に問題がない場合、これは機能します:

data test;
set sashelp.class;
do _t = 1 to floor(ranuni(7)*20);
 age=age+floor(ranuni(7)*10);
 output;
end;
run;

proc format;
value agerange
low-12 = "Pre-Teen"
13-14 = "Early Teen"
15-18 = "Teen"
19-21 = "Young Adult"
22-high = "Adult";
quit;


ods graphics on;
ods preferences;
proc sgplot data=test;
format age agerange.;
vbar age;
run;

パーセントが必要な場合は、最初にデータを PROC FREQ または TABULATE し、次に結果を SGPLOT (または GPLOT) する必要があると思います。

エンドポイントが等しくないヒストグラムを作成するために使用できるマクロを見つけました。コードはNESUG 2008議事録で見つけることができます

于 2013-07-16T13:41:45.947 に答える