SAS®認定プロフェッショナルのためのBase Programming for SAS 9 完全ガイド

ii

このマニュアルの正確な書誌情報は、以下のとおりです。
SAS®認定プロフェッショナルのための Base Programming for SAS 9 完全ガイド
Copyright © 2009, SAS Institute Inc., Cary, NC, USA
ISBN 978-4-87235-163-7
本書の日本における出版権は、SAS Institute Japan 株式会社が所有しています。本書の無断転載を禁止します。また弊社の文書による事前の許可なく、この出版物の全部あるいは一部を、電子データ、印刷、コピー、その他の方法を用いて複写することを禁じます。
アメリカ合衆国政府による権利の制限についての通告：アメリカ合衆国政府による、本ソフトウェアとこれに関連する文書の使用、複製、開示は、SAS Institute との契約、および FAR 52.227–9 Commercial Computer Software-Restricted Rights（1987 年 6月）の対象となります。
SAS およびその他のすべての SAS Institute Inc.の製品名またはサービス名は、米国およびその他の国における SAS Institute Inc.の登録商標または商標です。®は米国における登録商標を表しています。その他のブランド名や製品名は、それぞれに対応する会社の商標です。

iii

目次
Chapter 1

基本コンセプト .................................................................................. 1

概要 ..................................................................................................................................................................... 2
SAS プログラム ................................................................................................................................................... 3
SAS ライブラリ ................................................................................................................................................... 8
SAS ファイルの参照.......................................................................................................................................... 10
SAS データセット ............................................................................................................................................. 12
プログラミング・ワークスペースの利用 .......................................................................................................... 17
章のまとめ ......................................................................................................................................................... 30
クイズ ................................................................................................................................................................ 32

Chapter 2

ファイルの参照と設定のオプション ................................................ 37

概要 ................................................................................................................................................................... 38
SAS ライブラリの表示 ...................................................................................................................................... 44
結果の形式の指定 .............................................................................................................................................. 49
システム・オプションの設定 ............................................................................................................................ 52
追加の機能 ......................................................................................................................................................... 61
章のまとめ ......................................................................................................................................................... 62
クイズ ................................................................................................................................................................ 65

Chapter 3

SAS プログラムの編集とデバッグ .................................................. 69

概要 ................................................................................................................................................................... 70
SAS プログラムの編集 ...................................................................................................................................... 75
SAS プログラミング・ウィンドウのクリア ...................................................................................................... 85
エラー・メッセージの解釈 ................................................................................................................................ 85
エラーの修正 ..................................................................................................................................................... 86
一般的な問題の解決 .......................................................................................................................................... 89
追加の機能 ......................................................................................................................................................... 95
この章のまとめ.................................................................................................................................................. 98
クイズ .............................................................................................................................................................. 100

Chapter 4

リストレポートの作成 ................................................................... 103

概要 ................................................................................................................................................................. 104
基本レポートの作成 ........................................................................................................................................ 105
変数の選択 ....................................................................................................................................................... 106
オブザベーションの識別 ................................................................................................................................. 108
データの並べ替え ............................................................................................................................................ 111
列合計の生成 ................................................................................................................................................... 114
ダブルスペース・リスト出力 .......................................................................................................................... 119
タイトルとフットノートの指定....................................................................................................................... 120
説明的なラベルの割り当て .............................................................................................................................. 124
データ値のフォーマット化 .............................................................................................................................. 126

iv
永久的に割り当てられるラベルと出力形式の利用 .......................................................................................... 129
その他の機能 ................................................................................................................................................... 129
章のまとめ ....................................................................................................................................................... 130
クイズ .............................................................................................................................................................. 133

Chapter 5

生データファイルと Excel ワークシートからの SAS データセットの作成

139

概要 .................................................................................................................................................................. 141
生データファイル ............................................................................................................................................ 142
生データファイルからの SAS データセットを作成するステップ ................................................................... 143
SAS ライブラリの参照 .................................................................................................................................... 143
生データファイルの参照.................................................................................................................................. 144
DATA ステップ・プログラムの記述................................................................................................................ 146
DATA ステップ・プログラムのサブミット ..................................................................................................... 151
変数の作成と編集 ............................................................................................................................................ 155
データのサブセット化 ..................................................................................................................................... 158
ストリーム内データの読み込み ....................................................................................................................... 159
生データファイルの作成.................................................................................................................................. 161
その他の機能 ................................................................................................................................................... 164
Microsoft Excel データの読み込み .................................................................................................................. 165
LIBNAME ステートメントのオプション ........................................................................................................ 172
Excel ワークシートの作成 ............................................................................................................................... 173
インポートウィザード ..................................................................................................................................... 173
章のまとめ ....................................................................................................................................................... 174
クイズ .............................................................................................................................................................. 179

Chapter 6

DATA ステップの処理の理解 ........................................................ 185

概要 .................................................................................................................................................................. 186
基本の DATA ステップの記述 ......................................................................................................................... 187
SAS がどのようにプログラムを処理するか .................................................................................................... 188
コンパイル・フェーズ ..................................................................................................................................... 189
実行フェーズ ................................................................................................................................................... 192
DATA ステップのデバッグ .............................................................................................................................. 202
プログラムのテスト ......................................................................................................................................... 209
章のまとめ ....................................................................................................................................................... 212
クイズ .............................................................................................................................................................. 214

Chapter 7

ユーザー定義の出力形式の作成と適用 .......................................... 217

概要 .................................................................................................................................................................. 217
PROC FORMAT イントロダクション .......................................................................................................... 218
一意な出力形式の定義 ..................................................................................................................................... 220
変数にユーザー定義の出力形式を関連づける ................................................................................................. 223
出力形式の変数への割り当て .......................................................................................................................... 224
この章のまとめ ................................................................................................................................................ 227
クイズ .............................................................................................................................................................. 228

v

Chapter 8

拡張リストレポートと要約レポートの作成 ................................... 231

概要 ................................................................................................................................................................. 232
デフォルトのリストレポートの作成 ............................................................................................................... 233
変数の選択 ....................................................................................................................................................... 235
オブザベーションの選択 ................................................................................................................................. 238
変数の定義 ....................................................................................................................................................... 239
列属性の定義 ................................................................................................................................................... 241
列ヘッダーの定義 ............................................................................................................................................ 244
列の位置揃えの指定 ........................................................................................................................................ 246
ヘッダーの表示の拡張 ..................................................................................................................................... 247
変数の用法の定義 ............................................................................................................................................ 248
章のまとめ ....................................................................................................................................................... 256
クイズ .............................................................................................................................................................. 258

Chapter 9

記述統計量の作成........................................................................... 263

概要 ................................................................................................................................................................. 264
学習内容 .......................................................................................................................................................... 264
PROC MEANS を利用した統計量の計算 ....................................................................................................... 265
統計量の選択 ................................................................................................................................................... 266
小数点以下の制限 ............................................................................................................................................ 268
PROC MEANS への変数の指定 ...................................................................................................................... 269
CLASS ステートメントを利用したグループ処理 ........................................................................................... 270
BY ステートメントを利用したグループ処理 .................................................................................................. 270
PROC MEANS を利用した要約データセットの作成...................................................................................... 272
PROC SUMMARY を利用した要約データセットの作成 ................................................................................ 274
PROC PREQ を利用した度数表の作成 ........................................................................................................... 274
PROC FREQ への変数の指定 ......................................................................................................................... 276
2 元表の作成 .................................................................................................................................................... 278
N 元表の作成 ................................................................................................................................................... 279
章のまとめ ....................................................................................................................................................... 283
クイズ .............................................................................................................................................................. 287

Chapter 10

HTML 出力の作成 .......................................................................... 291

概要 ................................................................................................................................................................. 292
Output Delivery System ................................................................................................................................ 293
ODS 出力先のオープンとクローズ ................................................................................................................. 295
ODS 出力を開き、閉じるためのステートメントの利用 ................................................................................. 296
単純な HTML 出力の作成 ............................................................................................................................... 298
目次を持つ HTML 出力の作成 ........................................................................................................................ 301
リンクやパスを指定するためのオプションの利用 .......................................................................................... 304
HTML 出力の表示の変更 ................................................................................................................................ 307
追加機能 .......................................................................................................................................................... 309
章のまとめ ....................................................................................................................................................... 309
クイズ .............................................................................................................................................................. 311

Chapter 11

変数の作成と管理........................................................................... 315

vi
概要 .................................................................................................................................................................. 316
変数の作成と編集 ............................................................................................................................................ 317
条件付けの値の割り当て.................................................................................................................................. 319
選択可能なアクションの提供 .......................................................................................................................... 322変数の長さの指定 ............................................................................................................................................ 324
データのサブセット ......................................................................................................................................... 325
永久ラベルと永久出力形式の割り当て ............................................................................................................ 329
SELECT グループ使用による値の条件付き割り当て ..................................................................................... 331
DO グループを使用したグループ化ステートメント ....................................................................................... 334
章のまとめ ....................................................................................................................................................... 337
クイズ .............................................................................................................................................................. 339

Chapter 12

SAS データセットの読み込み ....................................................... 345

概要 .................................................................................................................................................................. 346
単一のデータセットの読み込み ....................................................................................................................... 347
データの加工 ................................................................................................................................................... 347
BY グループ処理の利用 ................................................................................................................................... 349
データセット終了の検出.................................................................................................................................. 356
追加機能........................................................................................................................................................... 364
この章のまとめ ................................................................................................................................................ 364
クイズ .............................................................................................................................................................. 367

Chapter 13

SAS データセットの組み合わせ ................................................... 371

概要 .................................................................................................................................................................. 372
1 対 1 読み込み ................................................................................................................................................ 374
1 対 1 読み込みはどのように動作するか ......................................................................................................... 375
縦結合 .............................................................................................................................................................. 377
追加 .................................................................................................................................................................. 379
インターリーブ ................................................................................................................................................ 382
マッチマージ ................................................................................................................................................... 384
マッチマージ処理 ............................................................................................................................................ 388
コンパイル・フェーズ：新しいデータセットの準備 ....................................................................................... 389
変数の名前の変更 ............................................................................................................................................ 394
マッチしないオブザベーションの除外 ............................................................................................................ 395
変数の選択 ....................................................................................................................................................... 398
追加機能........................................................................................................................................................... 399
章のまとめ ....................................................................................................................................................... 400
クイズ .............................................................................................................................................................. 405

Chapter 14

SAS 関数でのデータの変換........................................................... 413

概要 .................................................................................................................................................................. 415
SAS 関数の理解 ............................................................................................................................................... 416
SAS 関数の一般形 ........................................................................................................................................... 417
関数でのデータの変換 ..................................................................................................................................... 418
関数での SAS 日付値の加工 ............................................................................................................................ 426関数での文字値の編集 ..................................................................................................................................... 438
関数での数値の編集 ......................................................................................................................................... 455

vii
章のまとめ ....................................................................................................................................................... 457
クイズ .............................................................................................................................................................. 463

Chapter 15

DO ループでのデータの生成 ......................................................... 467

概要 ................................................................................................................................................................. 468
DO ループの構築 ............................................................................................................................................. 468
DO ループのネスト ......................................................................................................................................... 473
データセットから読み込まれるデータの反復処理 .......................................................................................... 474
DO ループの条件付き実行 .............................................................................................................................. 475
反復 DO ステートメントを持つ条件句の利用 ................................................................................................. 477
サンプルの作成................................................................................................................................................ 478
章のまとめ ....................................................................................................................................................... 479
クイズ .............................................................................................................................................................. 482

Chapter 16配列での変数の処理 ....................................................................... 485

概要 ................................................................................................................................................................. 486
1 次元配列の作成 ............................................................................................................................................. 487
配列利用の拡張................................................................................................................................................ 494
追加機能 .......................................................................................................................................................... 506
章のまとめ ....................................................................................................................................................... 508
クイズ .............................................................................................................................................................. 510

Chapter 17

固定長フィールドの生データの読み込み ....................................... 513

概要 ................................................................................................................................................................. 514
カラム入力の復習 ............................................................................................................................................ 514
非標準数値データの識別 ................................................................................................................................. 516
入力スタイルの選択 ........................................................................................................................................ 517
入力形式指定入力の利用 ................................................................................................................................. 517
入力形式の利用................................................................................................................................................ 521
レコード形式 ................................................................................................................................................... 524
章のまとめ ....................................................................................................................................................... 526
クイズ .............................................................................................................................................................. 529

Chapter 18

フリー・フォーマット・データの読み込み ................................... 533

概要 ................................................................................................................................................................. 534
フリー・フォーマット・データ....................................................................................................................... 535
リスト入力の利用 ............................................................................................................................................ 535
欠損値の読み込み ............................................................................................................................................ 540
文字値の長さの指定 ........................................................................................................................................ 543
修飾子を使用したリスト入力 .......................................................................................................................... 545
フリー・フォーマット・データの作成 ............................................................................................................ 549
入力スタイルの混合 ........................................................................................................................................ 553
追加機能 .......................................................................................................................................................... 554
章のまとめ ....................................................................................................................................................... 555
クイズ .............................................................................................................................................................. 558

Chapter 19

日時値の読み込み........................................................................... 563

viii
概要 .................................................................................................................................................................. 563
SAS が日付値を保存する方法.......................................................................................................................... 564
SAS は時間値をどのように保存するか ........................................................................................................... 565
SAS 日時値に関する詳細 ................................................................................................................................. 565
入力形式での日時の読み込み .......................................................................................................................... 565
計算における日時の利用.................................................................................................................................. 569
日時出力形式の利用 ......................................................................................................................................... 573
この章のまとめ ................................................................................................................................................ 576
クイズ .............................................................................................................................................................. 577

Chapter 20

複数のレコードからの単一オブザベーションの作成 .................... 581

概要 .................................................................................................................................................................. 581
ラインポインタ・コントロールの利用 ............................................................................................................ 582
複数のレコードの連続した読み込み ................................................................................................................ 583
複数のレコードの断続的な読み込み ................................................................................................................ 589
ラインポインタ・コントロールの組み合わせ ................................................................................................. 592
この章のまとめ ................................................................................................................................................ 593
クイズ .............................................................................................................................................................. 594

Chapter 21

単一のレコードからの複数のオブザベーションの作成................. 599

概要 .................................................................................................................................................................. 600
繰り返しデータブロックの読み込み ................................................................................................................ 601
同数の繰り返しフィールドの読み込み ............................................................................................................ 608
様々な数の繰り返しフィールドの読み込み ..................................................................................................... 614
この章のまとめ ................................................................................................................................................ 620
クイズ .............................................................................................................................................................. 624

Chapter 22

階層型ファイルの読み込み............................................................ 629

概要 .................................................................................................................................................................. 629
詳細レコードごとに 1 つのオブザベーションの作成....................................................................................... 631
ヘッダーレコードごとの 1 つのオブザベーションの作成 ............................................................................... 637
ヘッダーレコードごとに 1 つのオブザベーションを作成する DATA ステップの処理.................................... 642
この章のまとめ ................................................................................................................................................ 646
クイズ .............................................................................................................................................................. 649

Appendix 1

クイズの解答 ................................................................................. 655

Chapter 1: 基本コンセプト............................................................................................................................. 655
Chapter 2: ファイル参照と設定のオプション ................................................................................................ 658
Chapter 3: SAS プログラムの編集とデバッグ ................................................................................................ 662
Chapter 4: リストレポートの作成 .................................................................................................................. 665
Chapter 5: 生データファイルと Excel ワークシートからの SAS データセットの作成 ................................. 670
Chapter 6: DATA ステップの処理の理解 ........................................................................................................ 676
Chapter 7: ユーザー定義の出力形式の作成と適用 ......................................................................................... 679
Chapter 8: 拡張リストレポートと要約レポートの作成 .................................................................................. 682
Chapter 9: 記述統計量の作成 ......................................................................................................................... 687
Chapter 10: HTML 出力の作成 ...................................................................................................................... 691
Chapter 11: 変数の作成と管理 ....................................................................................................................... 694

ix
Chapter 12: SAS データセットの読み込み ..................................................................................................... 699
Chapter 13: SAS データセットの組み合わせ ................................................................................................. 702
Chapter 14: SAS 関数でのデータの変換 ........................................................................................................ 709
Chapter 15: DO ループでのデータの生成 ...................................................................................................... 713
Chapter 16: 配列での変数の処理 ................................................................................................................... 716
Chapter 17: 固定長フィールドの生データの読み込み ................................................................................... 719
Chapter 18: フリー・フォーマット・データの読み込み ............................................................................... 722
Chapter 19: 日時値の読み込み ....................................................................................................................... 727
Chapter 20: 複数のレコードからの単一オブザベーションの作成 ................................................................. 729
Chapter 21: 単一のレコードからの複数のオブザベーションの作成.............................................................. 734
Chapter 22: 階層型ファイルの読み込み ........................................................................................................ 739

用語集....................................................................................................... 745

インデックス....................................................................................................... 757