Stata+α「データのインポート」

Stata+α「データのインポート」
2013 年 11 月
今回はテキストデータのインポートの際に知っておくと役立つコマンドをご紹介します。
サンプルデータとしては次の 2 つのファイルを利用します。
sampledata.dta
sampledata2.dta
これらのファイルをご自身の PC にダンロードしてから解説を読み進めてください。ここで
は、サンプルデータを C ドライブの stata13/statanews/201211 というフォルダに用意した
ものとして解説します
最初にワークキングディレクトを 201211
フ ォ ル ダ に 設 定 し ま す 。 File/Change
Working directory と操作し、目的のフォ
ルダを選択します。
■テキストデータ
データファイルには一般的に、テキスト形
式のバイナリ形式の 2 種類があります。
Stata に取り込むことのできるファイル
は一般的にテキストファイルです。
例えば、データベースから入手したファイ
ルの形式が不明な場合、それを見分ける簡
単な方法があります。右図に示すように
メモ帳の上にドラッグ&ドロップしてみ
ます。テキストファイルの場合は、中身
を確認することができます。一方、バイ
ナリファイルの場合、それは暗号のよう
な文字や記号を表示し、ファイルの中身
の情報を判別することはできません。
試しに、サンプルデータ sampledate.txt
を図のようにドラッグ&ドロップしてみ
ましょう。中には 3 つの変数が入ってい
る事が分かり、具体的な数値も表示され
ます。データの区切り(delimiter)はスペ
1
ースであり、データの文字数は固定で、1 番目(左端)の変数は小数点を含めて 6 文字、2 番
目の変数は 6 文字、3 列目は 2 文字となっています。
Windows のシステムによっては拡張子
なし(sampledata)でファイル名だけを
表示する設定になっていることもあり
ます。
Windows7 で拡張子付きでファイル名
(sampledata.dta) を 画 面 上 に 表 示 す る
場合は、エクスプローラの画面で Alt を
一度押します。すると、メニューが図のように追加表示されますので、ツールメニューか
ら「フォルダーオプション」を選択し、ダイアログを表示します。表示タブで、下の方に
ある「登録されている拡張子は表示しない」のチェックを外します。このようにすると、
エクスプローラ画面のファイル名は拡張子付で表示されます。
■テキストデータのインポート
テキストファイルのインポートは File/Import から Text data(delimited,*csv,… )と操作し
ます。ここでは例として用意した sampledata.txt をインポートします。
テキストデータのインポートダイアログを表示しますが、データがすべて 1 列目にまとめ
て入ってしまいます。しかも、文字の色が赤で表示していますので、このまま取り込んで
も文字列として認識されてしまいます。
2
このような場合、一番簡単なのは Excel で開き、Excel 形式で保存し、それを Stata で取り
込むことです。Stata13 からは Excel ファイルを直接開くことができます。
ここではさらに、Excel 以外の方法をご案内します。利用しているサンプルデータのように、
データの文字数が固定されている場合は、File/Import/Text data in fixed format コマンド
を利用します。
Specifications のフィールド
には変数とそのデータの入
っている範囲を列数で指定
します。たとえば、左端の変
数名は length とし、文字数
は 7 で固定されている場合、
length 1-6
と入力します。変数名はユー
ザがここで自由に設定しま
す。変数名と文字数を設定し
たら、ファイル名を下側の
Text dataset filename のフ
ィールドに入力し、OK ボタンをクリックします。固定長の場合、この方法を利用すると、
データを正しくインポートできます。データがインポートできたら、sampledata.dta とい
う名前の Stata ファイルとして保存して、ファイルを閉じます(clear します)。
3
注意:この方法では、テキストデータファイルに列名(変数名)が入っていないことを前提とし
ています。
ファイルの結合
次に dta ファイルの結合方法をご紹介
します。まったく同じ形式のテキスト
ファイル sampledata2.txt があります
ので、これを、同じ要領でインポート
し、Stata 形式のファイルとして保存
し、右図の 11 行目に追加してみまし
ょう。
それでは実際に、sampledata2.txt を
Stata ファイル sampledata2.dta とし
て保存して閉じます(clear します)。
この時点でサンプルデータのフォルダには 4 つのファイルがあります。
sampledata.txt
sampledata.dta(開いているファイル)
sampledata2.txt
sampledata2.dta(これから追加するファイル)
sampledata.dta と sampledata2.dta を 縦 に 接 続 し ま す 。 改 め て 最 初 に フ ァ イ ル
sampledata.dta を開きます。
length
height
age
1.
2.
3.
4.
5.
134.56
111.87
22.21
133.5
144.55
55.346
22.2
25.67
44.105
6.206
31
33
42
55
39
6.
7.
8.
9.
10.
155.41
104.87
152.28
133.35
143.12
66.547
22.25
35.27
54.952
39.99
61
23
42
51
43
11.
12.
13.
14.
15.
164.5
111.87
122.21
153.41
144.55
51.346
22.14
29.04
34.501
41.3
33
38
41
49
51
.use sampledata,clear
コマンドウィンドウに次のように入力します。
.append using sampledata2
.list
11-15 行目のデータを既存の sampledata.dta に追加できま
した。この 15 個のデータからなるファイルを
sampledata3.dta として保存します。
4
データの選別
次は age が 35 歳以上のデータだけを利用したファイルを新たに作成します。少し小さなフ
ァイルを改めて作りことになります。まずは、sampledata3.dta で 35 歳以上のデータを確
認することから始めます。
.list if age>=35
length
height
age
3.
4.
5.
6.
8.
22.21
133.5
144.55
155.41
152.28
25.67
44.105
6.206
66.547
35.27
42
55
39
61
42
.keep if age>=35
9.
10.
12.
13.
14.
133.35
143.12
111.87
122.21
153.41
54.952
39.99
22.14
29.04
34.501
51
43
38
41
49
(4 observations deleted)
15.
144.55
41.3
51
条件に合わないデータを非表示にした表を画面に出力しまし
た。もちろん、オリジナルのデータは削除されていません。
実際にデータを削除する場合は次のようにします。
15 個のデータのうち、4 つを削
除したことが分かります。Keep
コマンドで実行した削除内容は
復元できまんので、慎重に操作し
てください。
今回はテキストファイルのイン
ポートと dta ファイルの接続(縦
方向)の操作について説明しまし
た。次回はパネルデータにおける
欠損値の調べ方と、便利なデータ
加工方法について、いくつか便利
なコマンドを紹介します。
5