/* 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; :
なお、今まで紹介していた私のメールアドレスは実は講義用のものであった。 今後、もし統計に関して何か疑問に出会い、私に連絡・相談してみたいと思った時は、 以下のアドレスを使ってください。
皆さんの期待に応えられたか心許無い部分もありますが、半年間ご苦労様でした。