CSPro はじめに補足

平成 16 年 11 月

独立行政法人統計センター 研究センター

目次
補足について ......................................................................................................................... 1
ステップ１：サンプルデータについて ......................................................................................... 1
ステップ２：データ辞書の作成.................................................................................................. 3
ステップ３：データの集計 ....................................................................................................... 11

補足についてこの補足では、CSPro を使って既存の個票データからクロス集計を行う手順を課題形式で説明します。
CSPro で処理する個票データは、次の条件が必要です。
z

固定長形式で収録されていることz少なくとも１つの ID 項目が収録されていること

課題では、最初のステップで、使用するサンプルデータの内容を説明します。次のステップでは、サンプルデータの構造を記述するためのデータ辞書を作成します。最後のステップでは、地域別のクロス集計を実行します。

ステップ１：サンプルデータについて
この説明では、「CSPro はじめに」のチュートリアルのサンプル調査票に基づく入力済みのサンプルデータ1を使います。チュートリアルで作成したデータは、個人の項目を含むレコードと世帯の項目を含むレコードの２種類が同一ファイルに記録されていますが、ここでは、世帯内の最大１０人の各項目と世帯についての各項目を同一のレコードに記録した、１世帯１レコードの形式を用います。さらに、世帯の所在地に関する地域コードを付加しています2。サンプルデータに収録された項目は、次の表のとおりです。

項目名

左端

桁数

繰り

位置

説明3

返し

一連番号（ID 項目）

1

40001〜

世帯員について

5

世

世帯員番号

5

201〜10帯

年齢72△0〜99

員

性別

9

1

1：男性、2：女性

１

配偶関係

10

1

1：既婚、2：未婚

世

世帯員番号

11

201〜10帯

年齢

13

2△0〜99

員

性別

15

1

1：男性、2：女性

10

1 CSProに付属しているexampleの“Popstan Census 2000.dat”を用いて作成した架空のデータです。
23

架空のデータにランダムに地域コードを割り当てています。
△は半角の空白を示します。

-1-

２

配偶関係

16

1

1：既婚、2：未婚

世

世帯員番号

59

201〜10

帯

年齢

61

2

△0〜99

員

性別

63

1

1：男性、2：女性

10

配偶関係

64

1

1：既婚、2：未婚世帯について

65

居住形態

65

1

サンプル調査票参照

屋根の種類

66

1

サンプル調査票参照空白

67

1世帯の所在地

68：

都道府県番号

68

201〜47市区町村番号470

3000

町丁字等コード573

40000

サンプルデータは、統計センターの ホームページ からダウンロードし、フォルダ“c:\CSProTutorial\example”に、ファイル名“example1.dat”で保存してあるものとします。同様に、ステップ３で用いる地域名称ファイル“japanpref.anm”をあわせてダウンロードし、同じフォルダに保存してください。
まず、テキストビューアーを使って、このサンプルデータを確認します。
z

メインメニューの Tools/Text Viewer を選択して、テキストビューアーを起動します。

z［ファイルを開く］ダイアログで、サンプルデータのあるフォルダ“c:\CSProTutorial\example”を指定し、ファイル名“example1.dat”を入力します。

メニューの［View］で［Ruler］を選択すると、次のような画面になります。

4
5

ステップ３で取り上げる集計表の例では使用しません。
ステップ３で取り上げる集計表の例では使用しません。

-2-

１行目は２人の世帯、２行目は５人の世帯、３行目は４人の世帯のデータです。また、各行の最初の４桁が一連番号を表し、67 桁目が空白で、68 桁目から９桁分が世帯の所在地のコードになっていることなどが確認できます。
次のステップへ続きます。

ステップ２：データ辞書の作成
このステップでは、前のステップで確認したサンプルデータに対応するデータ辞書を作成し、項目を定義していきます。
最初に、ウィザードを用いて、新しいデータ辞書を作成します。

z

メインメニューの File/New を選択するか、ツールバーのz［Data Dictionary File］をクリックします。

z

辞書ファイル名を入力します。例として、ここでは、“Example1”と入力します。

-3-ボタンをクリックします。

z

辞書を作成するフォルダ名を入力します。例として、ここでは、サンプルデータと同じフォルダ“c:\CSProTutorial\example”を使用します。

z［次へ］をクリックします。

z

チェッカーフラッグが表示されます。［完了］をクリックすると、“Example1.dcf”の画面が表示されます。

次に、CSPro が自動的に作成したデータ辞書のスケルトンを変更して、サンプルデータの項目の情報を追加していきます。追加の前に、メインメニューの［File］で［Relative Positions］のチェックをはずし、「Absolute Positioning」モードにします。「Absolute Positioning」モードでは、空白の項目をスキップすることや、ID 項目を任意の位置に指定することができます。
最初に、ID 項目の変更を行います。画面の左側の［(Id Items)］をクリックし、その隣の［＋］をクリックしてツリーを展開します。CSPro がすでに１つのＩＤ項目「Example1 identification」を作成していることが分かります。

z

画面の右側の一番上、［Item Label］が「(record type)」となっている項目は、レコードの種類を識別するために使います。［Len］欄は、この項目が１文字分の長さであることを示していますが、サンプルデータは、１世帯を１レコードとしているため、レコードの種類の識別は必要ありません。長さを０文字に変更します。［Len］欄に表示されている“1”をダブルクリックします。長さ“1”が青くハイライトされるので、“0”と入力し Enter キーを押し-4-ます。
z

すぐ下の「Example1 identification」で始まる行の［Start］欄と［Len］欄は、この項目が 2桁目から始まり、１文字分の長さであることを示しています。これを 1 桁目から始めて、４文字分の長さに変更します。［Start］欄に表示されている“2”をダブルクリックします。
“1”と入力し Enter キーを押すと、［Len］欄に移動します。“4”と入力し Enter キーを押します。Enter キーを 5 回押して、［Zero Fill］欄に移動します。［Zero Fill］欄を No から Yesに変更して、Enter キーを押します。

ここまでの操作が終わると、次のような画面になります。

さらに、世帯の所在地を ID 項目として追加します。まず、都道府県番号を追加します。
z

ツリーの［(Id Items)］を右クリックして、［Add Item］を選択します。

z［Item Label］として“prefecture”を入力し、Enter キーを押します。

zEnter キーを押して、［Item Name］を PREFECTURE とします。

z［Start］に“68”を入力して Enter キーを押して、［Start］位置を決定します。

z［Len］に“2”を入力して Enter キーを押し、prefecture が 2 桁であることを指定します。

zEnter キーを 5 回押して、［Zero Fill］欄に移動します。［Zero Fill］欄を No から Yes に変更
して、Enter キーを押します。

-5-上記の操作を繰り返して、市区町村番号、町丁字等コードを追加します。［Item Label］、［ItemName］、［Start］、［Len］、［Zero Fill］の欄は、それぞれ、次の表の値に変更します。
Item Label

Item Name

municipality
machi aza

MUNICIPALITY
MACHI̲AZA

Start Len
7073

Data
Type
3 Num
4 Num

Item TypeOcc

Item
Item

11Dec

Dec ZeroChar Fill0 No
Yes0 NoYes

ここまでの操作が終わると、次のような画面になります。

続いて、CSPro が自動的に作成したレコード「Example1 record」に項目を追加していきます。
「person record」は世帯員に関する項目を示し、「person no」、「age」、「sex」、「marital status」の 4つの小項目（subitem）に細分化されます。また、「Occ」に“10”を入力することで、同じ構造の項目を 10 個作成することができます。
z

ツリーの［Example1 record］を右クリックして、［Add Item］を選択します。

z［Item Label］として“person record”を入力し、Enter キーを押します。

-6-

z

Enter キーを押して、［Item Name］を PERSON̲RECORD とします。

z［Start］に“5”を入力して Enter キーを押して、［Start］位置を決定します。

z［Len］に“6”を入力して Enter キーを押し、「person record」を 6 桁に指定します。

zEnter キーを２回押して、［Occ］に移動します。“10”を入力して Enter キーを押し、10 回の繰り返しを指定します。

画面の左側の［person record］の隣の［＋］をクリックしてツリーを展開すると、下図のようにperson record(1)から person record(10)が作成されていることが分かります。

次に、小項目「person no」を作成します。
z

ツリーの［Example1 record］を右クリックして、［Add Item］を選択します。

z［Item Label］として“person no”を入力し、Enter キーを押します。

zEnter キーを押して、［Item Name］を PERSON̲NO とします。

z［Start］に“5”を入力して Enter キーを押して、［Start］位置を決定します。

z［Len］に“2”を入力して「person no」を 2 桁に指定します。これは、世帯員１から世帯員 10までの最大２桁の番号を入力するためです。

zEnter キーを押して、［Item Type］へ移動します。Item から Subitem に変更し、「person-7-no」は、「person record」を細分化した小項目として指定します。
zEnter キーを押して、［Zero Fill］へ移動し、No から Yes に変更します。

ここまでの操作が終わると、次のような画面になります。

上記の操作を繰り返して、年齢、性別、配偶関係を追加します。［Item Label］、［Item Name］、［Start］、［Len］、［Item Type］の欄は、それぞれ、次の表の値に変更します。
Item Label

Item Nameagesex
marital status

AGESEXMARITAL̲STATUS

Start Len
7910DataType
2 Num
1 Num
1 Num

ここまでの操作が終わると、次のような画面になります。

-8-

Item Type
SubitemSubitemSubitem

Occ
111Dec

Dec
Char0 No
0 No
0 No

ZeroFillNoNoNoさらに：z「housing record」の項目を作成します。

z「type household」の小項目を作成します。

z「type roof」の小項目を作成します。

z

Esc キーを押して、変更を終了します。

Item Labelhousingrecord
typehousehold
type roof

Item Name

Start Len

DataType

HOUSING̲RECORD

65

2 Num

Item

10 No

NoTYPE̲HOUSEHOLD

65

1 Num

Subitem

10 No

NoTYPE̲ROOF

66

1 Num

Subitem

10 No

No

ここまでの操作が終わると、次のような画面になります。

-9-Item Type

Occ

Dec

Dec ZeroChar Fillz

重要：ここまでの作業を保存しましょう。メインメニューの File/Save を選択するか、ツールバーのボタンをクリックします。

最後に、項目の値の定義を作ります。「CSPro はじめに」のチュートリアル課題２ステップ４にしたがって、「Age」、「Sex」、「Marital Status」、「type household」、「type roof」の値を追加してください。
「type roof」の値の追加が終わると、次のような画面になります。

- 10 -z

重要：ここまでの作業を保存しましょう。メインメニューの File/Save を選択するか、ツールバーのボタンをクリックします。

次のステップへ続きます。

ステップ３：データの集計
このステップでは、前のステップで作成したデータ辞書と、地域名が収録された外部ファイルを利用して、地域別のクロス集計を行います。
最初に、ウィザードを用いて、クロス集計アプリケーションを作成します。
z

メインメニューの File/New を選択するか、ツールバーのz［Cross Tab Application］をクリックします。

z

アプリケーションの名前に“Example1Tab”と入力します。

z

サンプルデータと同じフォルダ名（“c:\CSProTutorial\example”）を入力します。

- 11 -

ボタンをクリックします。

z［次へ］をクリックします。

z

次の画面で、データ辞書を選択するメッセージが表示されます。前のステップで作成したデータ辞書“c:\CSProTutorial\example\Example1.dcf”を入力して、［次へ］をクリックします。

z

チェッカーフラッグが表示されます。［完了］をクリックして完成です。

これで表を設計する準備ができました。
地域別のクロス集計6 を実行するために、まず、地域IDと地域名称ファイルを指定します。地域名称ファイルは、統計センターのホームページからダウンロードし、フォルダ“c:\CSProTutorial\example”に、ファイル名“japanpref.anm”で保存してあるものとします。
z

メインメニューの Edit/Area を選択するか、ツールバーのz［Questionnaire IDs］の中の［prefecture］を選択して［Add>>］ボタンを押し、［Area IDs］にボタンをクリックします。

［prefecture］を追加します。
z［Area name file］に c:\CSProTutorial\example\japanpref.anm”と入力して、［OK］をクリックします。

続いて、地域別に「age」と「sex」をクロスした表を作成していきます。「age」を表側、「sex」を表頭に配置します。
z6［age］をツリーから表の左側へドラッグアンドドロップします。ドロップする場所は、横の灰

地域別のクロス集計においても、最大４変数までのクロス集計が可能です。

- 12 -色の四角のとなりの白いスペースです。
z［sex］をツリーから表の上側へドラッグアンドドロップします。ドロップする場所は、上側の灰色の四角の下の白いスペースです。

ここまでの操作が終わると、次のような画面になります。

z

重要：ここまでの作業を保存しましょう。メインメニューの File/Save を選択するか、ツールバーのボタンをクリックします。

ここで、集計を実行します7。集計の対象として、サンプルデータを指定します。
z

ツールバーのz表を作成するためデータファイルの選択のメッセージが表示されたら、フォルダ名がボタンをクリックするか、Ctrl-R を押します。

“c:\CSProTutorial\example”になっていることを確認し、“example1.dat”を選択します。

7

実行の前にメインメニューのEdit/Parametersで、［Dump undefined(all tables)］のチェックをはずしてください。

- 13 -

z

集計値が表に表示されます。

次のような表が表示されます。

１つのアプリケーションで複数の集計表を作成することができます。ここでは、地域別に「age」と「marital status」をクロスした表を追加します。
z

ツールバーのボタンをクリックします。

Table 2 のタブが作成され、新しい表を設計する準備ができました。
z［age］をツリーから表の左側へドラッグアンドドロップします。ドロップする場所は、横の灰色の四角のとなりの白いスペースです。

z［marital status］をツリーから表の上側へドラッグアンドドロップします。ドロップする場所は、上側の灰色の四角の下の白いスペースです。

ここまでの操作が終わると、次のような画面になります。

- 14 -

ここで、ツールバーのボタンをクリックするか、Ctrl-R を押し、集計を実行します。集計の対象として、前の集計と同じサンプルデータを指定します。次の図のように集計値が表に表示されます。
Table 1 の集計も同時に行われます。Table 1 のタブをクリックすると、その結果が表示されます。

- 15 -

最後に、表を保存します。
z

メインメニューの Save/Save Tables を選択するか、ツールバーのボタンをクリックします。
z

保存する表を選択します。［Select All］ですべての表が選択できます。［OK］をクリックします。

z［名前を付けて保存］のダイアログが表示されます。ここで、ファイルの種類とファイル名を指定します。ファイルの種類は、CSPro 表形式、HTML、RTF、タブ区切りが選択できます8。例として、ファイル名“example1 tables.htm”、種類をHTMLとして保存します。

保存したファイルを Excel で開くと、次のような画面になります。

8 CSPro表形式のファイルは、表ビューアーで表示することができます。HTMLはホームページへの掲載や表計算ソフトで扱う場合に便利です。RTFはワープロソフトで扱う場合に便利です。タブ区切りは、表計算ソフトで扱う場合に便利です。

- 16 -

おめでとうございます。あなたは、CSpro の補足の課題を完了しました。これで、入力済みの個票データを処理するために、自分のアプリケーションを作成して実行することができるでしょう。詳細は Userʼs Guide を参照してください。CSPro のどのモジュールからでも、メインメニューのHelp/Help Topics を選択すれば、Userʼs Guide を参照できます。

- 17 -