/* Lesson 4-1 */ : /* File Name = les0401.sas 10/22/08 */ : : data naikaku; : データ名の定義 infile 'naikaku0710.prn' : ファイル名の指定 firstobs=2; : 数値は 2行目から入っている input name $ posit $ sex $ tochi : 読み込む変量名 ; : 終りを示すセミコロン proc print data=naikaku; : データの表示 run; : proc means data=naikaku; : 平均、標準偏差、最大最小値の算出 run; :
SAS システム 1 17:30 Tuesday, October 21, 2008 OBS NAME POSIT SEX TOCHI 1 Fukuda Kakuryou M 6731 2 Masuda Kakuryou M 1416 3 Hatoyama Kakuryou M 52728 4 Komoto Kakuryou M 6163 5 Nukaga Kakuryou M 4695 6 Tokai Kakuryou M 2138 7 Masuzoe Kakuryou M 0 8 Wakabaya Kakuryou M 3254 9 Amari Kakuryou M 3358 10 Fuyushib Kakuryou M 1435 11 Kamoshit Kakuryou M 21409 12 Ishiba Kakuryou M 1848 13 Machimur Kakuryou M 9705 14 Izumi Kakuryou M 2805 <中略> 67 Namiki Seimu M 13848 68 Terada Seimu M 20935 69 Akimoto Seimu M 0 SAS システム 6 17:30 Tuesday, October 21, 2008 Analysis Variable : TOCHI N Mean Std Dev Minimum Maximum ---------------------------------------------------------- 69 6451.67 11945.19 0 60729.00 ----------------------------------------------------------
/* Lesson 4-2 */ /* File Name = les0402.sas 10/22/08 */ data naikaku; infile 'naikaku0710.prn' firstobs=2; input name $13. posit $ sex $ tochi : 文字列長の指定方法 yotyokin total honnin kasituke kariire : 長い場合は 2行に ; proc print data=naikaku; run; proc means data=naikaku; run; proc chart data=naikaku; : ヒストグラムを描く hbar total; : 水平棒グラフで。変量を指定 vbar total; : 垂直棒グラフで。変量を指定 run;
SAS システム 1 17:30 Tuesday, October 21, 2008 Y K O A K T H S A P T Y T O I R N O O O O N T I O A S S C K T N U I B M I E H I A I K R S E T X I N L N E E 1 Fukuda Kakuryou M 6731 480 7211 7031 0 3800 2 Masuda Kakuryou M 1416 5380 6796 6047 0 0 3 Hatoyama Kakuryou M 52728 20308 73036 72481 0 40000 4 Komoto Kakuryou M 6163 1861 8024 6713 0 0 5 Nukaga Kakuryou M 4695 200 4895 3682 0 7500 6 Tokai Kakuryou M 2138 0 2138 1823 0 0 7 Masuzoe Kakuryou M 0 36149 36149 33999 1646 0 8 Wakabayashi Kakuryou M 3254 6445 9699 4854 2100 0 9 Amari Kakuryou M 3358 4450 7808 5205 0 880 10 Fuyushiba Kakuryou M 1435 1000 2435 1435 0 0 <中略> SAS システム 7 17:30 Tuesday, October 21, 2008 Variable N Mean Std Dev Minimum Maximum -------------------------------------------------------------------- TOCHI 69 6451.67 11945.19 0 60729.00 YOTYOKIN 69 3277.99 6557.29 0 36149.00 TOTAL 69 9729.64 16334.46 0 84817.00 HONNIN 69 6642.59 11686.66 0 72481.00 KASITUKE 69 460.7246377 970.1453330 0 4000.00 KARIIRE 69 2383.14 5853.12 0 40000.00 -------------------------------------------------------------------- SAS システム 8 17:30 Tuesday, October 21, 2008 TOTAL Cum. Cum. Midpoint Freq Freq Percent Percent | 0 |********************** 44 44 63.77 63.77 12000 |******** 16 60 23.19 86.96 24000 |** 3 63 4.35 91.30 36000 |** 3 66 4.35 95.65 48000 | 0 66 0.00 95.65 60000 | 0 66 0.00 95.65 72000 |* 2 68 2.90 98.55 84000 |* 1 69 1.45 100.00 | -----+----+----+----+-- 10 20 30 40 Frequency SAS システム 9 17:30 Tuesday, October 21, 2008 Frequency | ***** 40 + ***** | ***** 30 + ***** | ***** 20 + ***** | ***** ***** 10 + ***** ***** | ***** ***** ***** ***** -------------------------------------------------------------------- 0 12000 24000 36000 48000 60000 72000 84000 TOTAL Midpoint
/* Lesson 4-3 */ /* File Name = les0403.sas 10/22/08 */ data naikaku; infile 'naikaku0710.prn' firstobs=2; input name $13. posit $ sex $ tochi yotyokin total honnin kasituke kariire ; proc print data=naikaku(obs=5); : 先頭の 5ケースだけを表示。確認用 run; proc means data=naikaku; var tochi total; : 平均等を求めたい変量を指定 run; proc chart data=naikaku; hbar total; vbar total; run; proc chart data=naikaku; hbar total / midpoints= 5000 to 50000 by 5000; : 軸の値を指定 vbar total / midpoints=10000 to 50000 by 10000; : 軸の値を指定 run;
SAS システム 1 17:30 Tuesday, October 21, 2008 OBS NAME POSIT SEX TOCHI YOTYOKIN TOTAL HONNIN KASITUKE KARIIRE 1 Fukuda Kakuryou M 6731 480 7211 7031 0 3800 2 Masuda Kakuryou M 1416 5380 6796 6047 0 0 3 Hatoyama Kakuryou M 52728 20308 73036 72481 0 40000 4 Komoto Kakuryou M 6163 1861 8024 6713 0 0 5 Nukaga Kakuryou M 4695 200 4895 3682 0 7500 SAS システム 2 17:30 Tuesday, October 21, 2008 Variable N Mean Std Dev Minimum Maximum -------------------------------------------------------------------- TOCHI 69 6451.67 11945.19 0 60729.00 TOTAL 69 9729.64 16334.46 0 84817.00 -------------------------------------------------------------------- <中略> SAS システム 5 17:30 Tuesday, October 21, 2008 TOTAL Cum. Cum. Midpoint Freq Freq Percent Percent | 5000 |************************* 49 49 71.01 71.01 10000 |***** 10 59 14.49 85.51 15000 |* 1 60 1.45 86.96 20000 |* 2 62 2.90 89.86 25000 |* 1 63 1.45 91.30 30000 | 0 63 0.00 91.30 35000 |* 2 65 2.90 94.20 40000 |* 1 66 1.45 95.65 45000 | 0 66 0.00 95.65 50000 |** 3 69 4.35 100.00 | -----+----+----+----+----+ 10 20 30 40 50 SAS システム 6 17:30 Tuesday, October 21, 2008 Frequency 60 + ***** | ***** 45 + ***** | ***** 30 + ***** | ***** 15 + ***** | ***** ***** -------------------------------------------------------------------- 10000 20000 30000 40000 50000 TOTAL Midpoint
stat システム上の SAS に関して言えば、SAS の出力中の日本語は
「EUC コード」を使って表現されているので、
SAS の「計算結果」を Windows マシンに転送する前に
「EUC コード」を「Shift-JIS コード」に変換する必要が生じる。
また、漢字を含む元データを stat システム上で解析したいのなら、
転送後、stat システム上で EUC コードに変換してから利用する必要がある。
同様の理由で、ファイル名に漢字を使うのも避けるべきである。
[Lesson 4-4] Windows 側で読み出せるか、実際に転送してみよ。
[補足] nkf には他に、「-e」オプション(EUCコードに変換)、 「-j」オプション(JISコードに変換)がある。
data mon2007; infile 'd:\home\mon05d.csv' dlm=',' firstobs=2 truncover; missover dsd ; input No $ Univ : $30. SName : $40. Faculty : $50. Dept : $50. Center1 : $8. Center2 : $8. Sel1 : $8. Sel2 : $8. Book1 : $10. Book2 : $10. Vol0 VolS VolT ZenKou $ ScoreS ScoreT KoKouSi ;
data mon2007; infile 'd:\home\mon05e.txt' dlm='09'x firstobs=2 truncover;