/* Lesson 2-1 */ : コメント、実行に無関係 /* File Name = les0201.sas 04/21/05 */ : 後々の記録のためのメモ : 見易さのための空行 data kenshin; : データ名の定義 input name $ shintyou taijyuu; : 読み込む変量名、型($は文字型を示す) cards; : データの始まりを示す Oh 176 85 : Case 1 Itoh 181 84 : Case 2 Hillman 178 81 : Case 3 Valentine 178 84 : Case 4 Ohgi 171 71 : Case 5 Tao 174 77 : Case 6 ; : データの終りを示す proc print data=kenshin; : 読み込んだデータの表示 run; : 上記の実行 proc means data=kenshin; : 平均値等の算出 run; : 上記の実行
SAS システム 1 21:08 Wednesday, April 20, 2005 OBS NAME SHINTYOU TAIJYUU 1 Oh 176 85 2 Itoh 181 84 3 Hillman 178 81 4 Valentin 178 84 5 Ohgi 171 71 6 Tao 174 77 SAS システム 2 21:08 Wednesday, April 20, 2005 Variable N Mean Std Dev Minimum Maximum ------------------------------------------------------------------- SHINTYOU 6 176.3333333 3.5023801 171.0000000 181.0000000 TAIJYUU 6 80.3333333 5.4283208 71.0000000 85.0000000 -------------------------------------------------------------------
[Lesson 3-1] : データの保存 :
演習で入力したデータを SAS で使うことを考慮して
テキスト形式で保存せよ。
この後の説明を簡単にするために、ここでは、ドライブ名に「H:」、
ファイル名に「naikaku0310」を指定したとして説明を進める
(naikaku0310.prn)。
[参考1] 上記ではExcel の標準形式(*.xls)と
テキスト形式(*.prn)の 2通りの保存方法を紹介したが、
今後とも両方の形式で保存しておくことを勧める。
上記で指摘したように、列幅が足らない状態でテキスト形式の保存を行なうと、
ファイル上で隣同士のセルがくっついてしまい、
以後手作業を行わないと分離できなくなってしまうからである。
Excel の標準形式で保存してあれば、
このファイルを使って幅を再修正し、テキスト形式で再保存することが可能となる。
逆に、テキスト形式だけだと、このような再修正は不可能である。
[参考2] テキスト形式(*.prn)で保存後に、
これを直接編集したい場合は、Excel を使わずともテキストエディタ(秀丸、
NotePad 等)を使えば加工できる。
[参考3] H: ドライブは電源を切ると内容が消えてしまう。
バックアップ用に FD や MO 等を利用すること。
また、メールに添付したり、stat システムに転送してしまう(後述)という手もある。
[参考4] SAS に読み込ませるデータの形式として、
「スペース区切り」以外に「タブ区切り」、「カンマ区切り(CSV 形式)」等も
利用可能であるが、これらについては後日紹介する。
[Lesson 3-2] : ファイルの転送: Windows ===> stat システム(UNIX)
[参考] PC・ネットワーク利用ガイド2005年度版 の「 第6章 その他のサービス 」に stat システムを使う際の説明が若干載っている。
[Lesson 3-3] : 転送されたファイルの確認
転送したファイルが実際に存在し、ファイル内容も正しいことを確認せよ。
/* Lesson 3-4 */ : /* File Name = les0304.sas 04/28/05 */ : : data naikaku; : データ名の定義 infile 'naikaku0310.prn' : ファイル名の指定 firstobs=2; : 数値は 2行目から入っている input name $ posit $ sex $ tochi : 読み込む変量名 ; : 終りを示すセミコロン proc print data=naikaku; : データの表示 run; : proc means data=naikaku; : 平均、標準偏差、最大最小値の算出 run; :
SAS システム 1 22:26 Wednesday, April 27, 2005 OBS NAME POSIT SEX TOCHI 1 Koizumi Kakuryou M 10743 2 Aso Kakuryou M 37772 3 Nozawa Kakuryou M 2315 4 Kawaguch Kakuryou F 2266 5 Kawamura Kakuryou M 6268 6 Sakaguch Kakuryou M 451 7 Nakagawa Kakuryou M 2915 8 Ishihara Kakuryou M 2346 9 Koike Kakuryou F 1393 10 Fukuda Kakuryou M 6036 11 Ono Kakuryou F 2005 12 Mogi Kakuryou M 688 13 Takenaka Kakuryou M 3122 14 Kaneko Kakuryou M 2859 15 Inoue Kakuryou M 5464 <中略> 58 Satou Seimu M 667 59 Saitou Seimu M 3213 60 Sunada Seimu M 5433 SAS システム 5 22:26 Wednesday, April 27, 2005 Analysis Variable : TOCHI N Mean Std Dev Minimum Maximum ---------------------------------------------------------- 60 4077.17 6398.74 0 37772.00 ----------------------------------------------------------
/* Lesson 3-5 */ /* File Name = les0305.sas 10/28/04 */ data naikaku; infile 'naikaku0310.prn' firstobs=2; input name $10. posit $ sex $ tochi : 文字列長の指定方法 yotyokin total honnin kasituke kariire : 長い場合は 2行に ; proc print data=naikaku; run; proc means data=naikaku; var total; : 平均を求める変量を指定 run; proc chart data=naikaku; : ヒストグラムを描く hbar total; : 水平棒グラフで。変量を指定 vbar total; : 垂直棒グラフで。変量を指定 run;
SAS システム 5 22:26 Wednesday, April 27, 2005 Analysis Variable : TOTAL N Mean Std Dev Minimum Maximum ---------------------------------------------------------- 60 5761.28 7444.75 0 45522.00 ---------------------------------------------------------- SAS システム 6 22:26 Wednesday, April 27, 2005 TOTAL Cum. Cum. Midpoint Freq Freq Percent Percent | 4000 |*************************** 53 53 88.33 88.33 12000 |** 3 56 5.00 93.33 20000 |* 1 57 1.67 95.00 28000 |* 2 59 3.33 98.33 36000 | 0 59 0.00 98.33 44000 |* 1 60 1.67 100.00 | -----+----+----+----+----+-- 10 20 30 40 50 Frequency SAS システム 7 22:26 Wednesday, April 27, 2005 Frequency | ***** 50 + ***** | ***** 40 + ***** | ***** 30 + ***** | ***** 20 + ***** | ***** 10 + ***** | ***** ***** ------------------------------------------------------------------ 4000 12000 20000 28000 36000 44000 TOTAL Midpoint
/* Lesson 3-6 */ /* File Name = les0306.sas 10/28/04 */ data naikaku; infile 'naikaku0310.prn' firstobs=2; input name $10. posit $ sex $ tochi yotyokin total honnin kasituke kariire ; proc print data=naikaku(obs=5); : 先頭の 5ケースだけを表示。確認用 run; proc means data=naikaku; var 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 22:27 Wednesday, April 27, 2005 OBS NAME POSIT SEX TOCHI YOTYOKIN TOTAL HONNIN KASITUKE KARIIRE 1 Koizumi Kakuryou M 10743 2360 13103 13103 0 0 2 Aso Kakuryou M 37772 7750 45522 40273 20100 2000 3 Nozawa Kakuryou M 2315 2114 4429 2912 0 0 4 Kawaguchi Kakuryou F 2266 14330 16596 11344 0 0 5 Kawamura Kakuryou M 6268 2228 8496 5872 0 1000 SAS システム 2 22:27 Wednesday, April 27, 2005 Analysis Variable : TOTAL N Mean Std Dev Minimum Maximum ---------------------------------------------------------- 60 5761.28 7444.75 0 45522.00 ---------------------------------------------------------- <中略> SAS システム 5 22:27 Wednesday, April 27, 2005 TOTAL Cum. Cum. Midpoint Freq Freq Percent Percent | 5000 |************************* 49 49 81.67 81.67 10000 |*** 6 55 10.00 91.67 15000 |* 2 57 3.33 95.00 20000 | 0 57 0.00 95.00 25000 |* 1 58 1.67 96.67 30000 |* 1 59 1.67 98.33 35000 | 0 59 0.00 98.33 40000 | 0 59 0.00 98.33 45000 |* 1 60 1.67 100.00 50000 | 0 60 0.00 100.00 | -----+----+----+----+----+ 10 20 30 40 50 SAS システム 6 22:27 Wednesday, April 27, 2005 Frequency | ***** 45 + ***** | ***** 30 + ***** | ***** 15 + ***** | ***** -------------------------------------------------------------------- 10000 20000 30000 40000 50000 TOTAL Midpoint
stat システム上の SAS に関して言えば、SAS の出力中の日本語は
「EUC コード」を使って表現されているので、
SAS の「計算結果」を Windows マシンに転送する前に
「EUC コード」を「Shift-JIS コード」に変換する必要が生じる。
また、漢字を含む元データを stat システム上で解析したいのなら、
転送後、stat システム上で EUC コードに変換してから利用する必要がある。
同様の理由で、ファイル名に漢字を使うのも避けるべきである。
[Lesson 3-7] : Windows 側で読み出せるか、実際に転送してみよ。