/* Lesson 14-1 */
/* File Name = les1401.sas 07/17/03 */
data gakusei;
infile 'all03a.prn' firstobs=2;
input sex $ height weight chest
jitaku $ kodukai carrier $ tsuuwa;
title "*** Whole data ***"; : 各頁にタイトルを表示させる
proc print data=gakusei(obs=5);
run;
proc means data=gakusei;
var height kodukai; : 変量を指定
run;
proc chart data=gakusei;
hbar height kodukai; : 変量を指定
run;
proc univariate data=gakusei plot;
var height kodukai; : 変量を指定
run;
proc sort data=gakusei;
by sex;
run;
proc means data=gakusei;
var height kodukai; : 変量を指定
by sex;
run;
proc chart data=gakusei;
hbar height kodukai/group=sex; : 変量を指定
run;
proc chart data=gakusei; :
hbar height kodukai/group=jitaku; : 自宅生/下宿生での比較
run; :
title "*** Truncated data ***"; : 各頁にタイトルを表示させる
data truncate; : 新しいデータに名前を付ける
set gakusei; : 元データを持ってくる
if kodukai > 200000 then delete; : 外れ値を含むサンプルを削除する
proc print data=truncate(obs=5); : 対象データ名を変更
run;
proc means data=truncate; : 対象データ名を変更
var height kodukai;
run;
proc chart data=truncate; : 対象データ名を変更
hbar height kodukai;
run;
proc univariate data=truncate plot; : 対象データ名を変更
var height kodukai;
run;
proc sort data=truncate; : 対象データ名を変更
by sex;
run;
proc means data=truncate; : 対象データ名を変更
var height kodukai;
by sex;
run;
proc chart data=truncate; : 対象データ名を変更
hbar height kodukai/group=sex;
run;
proc chart data=truncate; : 対象データ名を変更
hbar height kodukai/group=jitaku;
run;
*** Whole data *** 2
09:52 Thursday, July 10, 2003
Variable N Mean Std Dev Minimum Maximum
---------------------------------------------------------------------
HEIGHT 243 168.2094650 8.0126058 145.0000000 186.0000000
KODUKAI 230 51380.43 52427.62 0 300000.00
---------------------------------------------------------------------
*** Whole data *** 4
09:52 Thursday, July 10, 2003
KODUKAI Cum. Cum.
Midpoint Freq Freq Percent Percent
|
0 |*********** 53 53 23.04 23.04
30000 |**************** 81 134 35.22 58.26
60000 |******** 39 173 16.96 75.22
90000 |***** 26 199 11.30 86.52
120000 |** 11 210 4.78 91.30
150000 |*** 14 224 6.09 97.39
180000 | 2 226 0.87 98.26
210000 | 2 228 0.87 99.13
240000 | 0 228 0.00 99.13
270000 | 0 228 0.00 99.13
300000 | 2 230 0.87 100.00
----+---+---+---+
20 40 60 80
*** Whole data *** 11
09:52 Thursday, July 10, 2003
Univariate Procedure
Variable=KODUKAI
Moments
N 230 Sum Wgts 230
Mean 51380.43 Sum 11817500
Std Dev 52427.62 Variance 2.7487E9
Skewness 1.661303 Kurtosis 3.710083
USS 1.237E12 CSS 6.294E11
CV 102.0381 Std Mean 3456.975
T:Mean=0 14.86283 Pr>|T| 0.0001
Num ^= 0 189 Num > 0 189
M(Sign) 94.5 Pr>=|M| 0.0001
Sgn Rank 8977.5 Pr>=|S| 0.0001
*** Whole data *** 12
09:52 Thursday, July 10, 2003
Univariate Procedure
Variable=KODUKAI
Quantiles(Def=5)
100% Max 300000 99% 200000
75% Q3 70000 95% 150000
50% Med 30000 90% 127500
25% Q1 20000 10% 0
0% Min 0 5% 0
1% 0
Range 300000
Q3-Q1 50000
Mode 0
*** Whole data *** 15
09:52 Thursday, July 10, 2003
Univariate Procedure
Variable=KODUKAI
Histogram # Boxplot
325000+* 2 *
.
.* 2 0
175000+****** 16 0
.********* 27 |
.**************** 48 +--+--+
25000+********************************************* 135 *-----*
----+----+----+----+----+----+----+----+----+
* may represent up to 3 counts
*** Whole data *** 23
09:52 Thursday, July 10, 2003
SEX KODUKAI Cum. Cum.
Midpoint Freq Freq Percent Percent
|
F 0 |**** 11 13 4.78 5.65
30000 |*********** 27 40 11.74 17.39
60000 |******* 18 58 7.83 25.22
90000 |** 5 63 2.17 27.39
120000 |* 3 66 1.30 28.70
150000 |* 2 68 0.87 29.57
180000 | 1 69 0.43 30.00
210000 | 1 70 0.43 30.43
240000 | 0 70 0.00 30.43
270000 | 0 70 0.00 30.43
300000 | 1 71 0.43 30.87
|
M 0 |***************** 42 113 18.26 49.13
30000 |********************* 53 166 23.04 72.17
60000 |******** 21 187 9.13 81.30
90000 |******** 20 207 8.70 90.00
120000 |*** 8 215 3.48 93.48
150000 |***** 12 227 5.22 98.70
180000 | 1 228 0.43 99.13
210000 | 1 229 0.43 99.57
240000 | 0 229 0.00 99.57
270000 | 0 229 0.00 99.57
300000 | 1 230 0.43 100.00
----+---+---+---+---+-
10 20 30 40 50
Frequency
*** Whole data *** 29
09:52 Thursday, July 10, 2003
JITAKU KODUKAI Cum. Cum.
Midpoint Freq Freq Percent Percent
|
G 0 |** 10 26 4.35 11.30
30000 |* 5 31 2.17 13.48
60000 |*** 15 46 6.52 20.00
90000 |**** 19 65 8.26 28.26
120000 |** 10 75 4.35 32.61
150000 |*** 14 89 6.09 38.70
180000 | 2 91 0.87 39.57
210000 | 1 92 0.43 40.00
240000 | 0 92 0.00 40.00
270000 | 0 92 0.00 40.00
300000 | 1 93 0.43 40.43
|
J 0 |******** 40 133 17.39 57.83
30000 |************** 70 203 30.43 88.26
60000 |**** 20 223 8.70 96.96
90000 |* 4 227 1.74 98.70
120000 | 1 228 0.43 99.13
150000 | 0 228 0.00 99.13
180000 | 0 228 0.00 99.13
210000 | 1 229 0.43 99.57
240000 | 0 229 0.00 99.57
270000 | 0 229 0.00 99.57
300000 | 1 230 0.43 100.00
----+---+---+--
20 40 60
Frequency
*** Truncated data *** 33
09:52 Thursday, July 10, 2003
Variable N Mean Std Dev Minimum Maximum
---------------------------------------------------------------------
HEIGHT 241 168.1738589 8.0143687 145.0000000 186.0000000
KODUKAI 228 49199.56 47153.99 0 200000.00
---------------------------------------------------------------------
*** Truncated data *** 35
09:52 Thursday, July 10, 2003
KODUKAI Cum. Cum.
Midpoint Freq Freq Percent Percent
|
0 |********************* 53 53 23.25 23.25
25000 |***************************** 72 125 31.58 54.82
50000 |*************** 38 163 16.67 71.49
75000 |******** 20 183 8.77 80.26
100000 |****** 16 199 7.02 87.28
125000 |**** 11 210 4.82 92.11
150000 |***** 13 223 5.70 97.81
175000 |* 3 226 1.32 99.12
200000 |* 2 228 0.88 100.00
----+---+---+---+---+---+---+-
10 20 30 40 50 60 70
Frequency
*** Truncated data *** 42
09:52 Thursday, July 10, 2003
Univariate Procedure
Variable=KODUKAI
Moments
N 228 Sum Wgts 228
Mean 49199.56 Sum 11217500
Std Dev 47153.99 Variance 2.2235E9
Skewness 1.140921 Kurtosis 0.57838
USS 1.057E12 CSS 5.047E11
CV 95.84229 Std Mean 3122.849
T:Mean=0 15.7547 Pr>|T| 0.0001
Num ^= 0 187 Num > 0 187
M(Sign) 93.5 Pr>=|M| 0.0001
Sgn Rank 8789 Pr>=|S| 0.0001
*** Truncated data *** 43
09:52 Thursday, July 10, 2003
Univariate Procedure
Variable=KODUKAI
Quantiles(Def=5)
100% Max 200000 99% 180000
75% Q3 70000 95% 150000
50% Med 30000 90% 120000
25% Q1 20000 10% 0
0% Min 0 5% 0
1% 0
Range 200000
Q3-Q1 50000
Mode 0
Histogram # Boxplot
225000+* 2 0
.****** 16 0
125000+********* 27 |
.**************** 48 +-----+
25000+********************************************* 135 *--+--*
----+----+----+----+----+----+----+----+----+
* may represent up to 3 counts
*** Truncated data *** 48
09:52 Thursday, July 10, 2003
--------------------------------- SEX=F --------------------------------
Variable N Mean Std Dev Minimum Maximum
---------------------------------------------------------------------
HEIGHT 73 159.2178082 5.5952694 145.0000000 171.0000000
KODUKAI 68 49389.71 43441.83 0 200000.00
---------------------------------------------------------------------
*** Truncated data *** 49
09:52 Thursday, July 10, 2003
--------------------------------- SEX=M --------------------------------
Variable N Mean Std Dev Minimum Maximum
---------------------------------------------------------------------
HEIGHT 167 172.0898204 5.3463154 156.0000000 186.0000000
KODUKAI 158 48962.03 48873.54 0 200000.00
---------------------------------------------------------------------
*** Truncated data *** 53
09:52 Thursday, July 10, 2003
SEX KODUKAI Cum. Cum.
Midpoint Freq Freq Percent Percent
|
F 0 |****** 11 13 4.82 5.70
25000 |************ 24 37 10.53 16.23
50000 |******** 15 52 6.58 22.81
75000 |**** 8 60 3.51 26.32
100000 |** 3 63 1.32 27.63
125000 |** 3 66 1.32 28.95
150000 |* 2 68 0.88 29.82
175000 |* 1 69 0.44 30.26
200000 |* 1 70 0.44 30.70
|
M 0 |********************* 42 112 18.42 49.12
25000 |************************ 47 159 20.61 69.74
50000 |************ 23 182 10.09 79.82
75000 |****** 12 194 5.26 85.09
100000 |****** 12 206 5.26 90.35
125000 |**** 8 214 3.51 93.86
150000 |****** 11 225 4.82 98.68
175000 |* 2 227 0.88 99.56
200000 |* 1 228 0.44 100.00
-----+----+----+----+----
10 20 30 40
Frequency
*** Truncated data *** 59
09:52 Thursday, July 10, 2003
JITAKU KODUKAI Cum. Cum.
Midpoint Freq Freq Percent Percent
|
G 0 |** 10 26 4.39 11.40
25000 |* 3 29 1.32 12.72
50000 |** 11 40 4.82 17.54
75000 |*** 13 53 5.70 23.25
100000 |** 12 65 5.26 28.51
125000 |** 10 75 4.39 32.89
150000 |*** 13 88 5.70 38.60
175000 |* 3 91 1.32 39.91
200000 | 1 92 0.44 40.35
|
J 0 |******** 40 132 17.54 57.89
25000 |************* 65 197 28.51 86.40
50000 |**** 22 219 9.65 96.05
75000 |* 4 223 1.75 97.81
100000 |* 3 226 1.32 99.12
125000 | 1 227 0.44 99.56
150000 | 0 227 0.00 99.56
175000 | 0 227 0.00 99.56
200000 | 1 228 0.44 100.00
----+---+---+-
20 40 60
Frequency
data seito03;
infile 'seito.prn';
input id $ sex $ kesseki $
koku $ suu1 $ suu2 $ tireki $ koumin $ rika $;
if sex^='M' then delete; /* male only */
if kesseki^='0' then delete; /* syusseki-sya only */
if tireki="世界史-0" then tireki="世界史";
if tireki="世界史-2" then tireki="世界史";
if tireki="日本史-2" then tireki="日本史";
if tireki="日本史-3" then tireki="日本史";
...
[例3] 複数の処理をさせたい場合 : do 〜 end で囲む
if tireki="世界史-0" then do;
tireki="世界史";
koumin=.;
end;
...
[比較演算子]
[論理演算子]
data math; infile 'foomath.dat' lrecl=230;
data math; infile 'foomath.dat' lrecl=230 truncover;
input
kamoku $ 2
kesseki $ 3
k_code $ 10-11
t_score 12-14
s_scor01 103-104
s_scor02 105-106
s_scor03 107-108
s_scor04 109-110
;
data math; infile 'foo.dat' firstobs=4;
data rei01; do i=1 to 200; x=rannor(12345); output; end; run;
/* Lesson 14-2 */ /* File Name = les1402.sas 11/21/02 */ options linesize=72; /* pagesize=20; */ : 出力サイズの指定 data rei01; : データセット名を rei01 とする do i=1 to 200; : 200回の繰り返し x=rannor(12345); : 正規乱数を発生させる output; : データセットに追加する end; : 繰り返しの終端 run; : proc print data=rei01(obs=10); : 先頭 10ケースの表示 run; : proc means data=rei01; : 全データに対する平均の計算 run; : proc print data=rei01(firstobs=91 obs=110); : 91番から 110番のデータの表示 run; : proc means data=rei01(firstobs=91 obs=110); : 91番から 110番のデータについての平均 run; : data _null_; : データセット名は付けない set rei01; : 元となるデータセット名 file "unsorted.dat"; : 出力ファイル名 put i 5. x 15.8; : 変量 i は小数点以上 5桁で run; : 変量 x は小数点以上 15桁、以下 8桁で proc sort data=rei01; : 並べ替え by x; : 変量 x について run; : proc print data=rei01(obs=10); run; proc print data=rei01(firstobs=91 obs=110); run; proc means data=rei01(firstobs=91 obs=110); run; data _null_; set rei01; file "sorted.dat"; put i 5. x 15.8; run;
/* Lesson 14-3 */
/* File Name = les1403.sas 11/21/02 */
options linesize=72; /* pagesize=20; */
data rei02; : データセット名を rei02 とする
do i=1 to 100; :
x=rannor(23456); : 上記とは別の種で乱数を発生させる
x10=int(x*10); : 10倍して正数部分だけ利用
output; :
end; :
run; :
title "Default"; : 見出し(タイトル)を付ける : 「無指定」
proc chart data=rei02; : オプションを指定しない場合のヒストグラム
hbar x; : 変量 x について
run; :
title "Ascending order"; : 「昇順」
proc chart data=rei02; :
hbar x / midpoints=-3 to 3 by .5; : 変量 x について昇順で。0.5 刻み。
run; :
title "Descending order"; : 「降順」
proc chart data=rei02; :
hbar x / midpoints=3 to -3 by -.5; : 変量 x について降順で。-0.5 刻み。
run; :
title "Default"; : 「無指定」: x10 を昇順に表示
proc freq data=rei02; : オプションを指定しない場合の度数分布表
tables x10; : 変量 x10 について
run; :
title "Freqency order"; : 「頻度降順」: 頻度の大きいものから
proc freq data=rei02 order=freq; :
tables x10; : 変量 x10 についての頻度順に表示
run; :
proc sort data=rei02; : 並べ替え
by decending x10; : x10 について降順に並べる
run; :
title "Descending order"; : 「数値降順」: x10 を降順に表示
proc freq data=rei02 order=data; : データの出現順で表示させるというオプション
tables x10; :
run; :
なお、今まで紹介していた私のメールアドレスは実は講義用のものであった。 今後、もし統計に関して何か疑問に出会い、私に連絡・相談してみたいと思った時は、 以下のアドレスを使ってください。
皆さんの期待に応えられたか心許無い部分もありますが、半年間ご苦労様でした。