LSL=とUSL=オプションは定数のみ指定可能ですので、PaigeMillerさんが書いたようにマクロ変数を使うのがもっとも簡単かと思われます。その他の方法としては、LIMITS=オプションを用いてデータセットの値からLSLやCp、Cpkを指定することができますのであらかじめ算出した値を表示することは可能です。
data Jets;
input Engine Diam @@;
lsl=50; usl=80;
label Engine = "Engine Number";
datalines;
1 78.4 2 80.1 3 84.4 4 79.1 5 80.4
6 83.5 7 73.8 8 83.5 9 75.0 10 76.8
11 70.5 12 80.3 13 82.4 14 79.4 15 86.4
16 90.5 17 77.7 18 82.5 19 79.9 20 83.2
;
proc shewhart data=Jets;
irchart Diam*Engine / outlimits = Jetlim
nochart;
run;
data Jetlim;
set Jetlim;
if _n_=1 then set Jets(keep=lsl usl);
_lsl_=lsl;
_usl_=usl;
_cp_=(_usl_-_lsl_)/(6*_stddev_);
_cpk_=min(_usl_-_mean_, _mean_-_lsl_)/(3*_stddev_);
run;
proc shewhart data=Jets limits=Jetlim;
irchart Diam*Engine ;
inset cp cpk;
run;
... View more