/* 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 側で読み出せるか、実際に転送してみよ。