複数のフレームの利用
Stata 16 では、メモリ内の複数のデータセットを操作できるようにするためにデータフレームが導入されました。
frame
コマンドを使用すると、フレームの作成とそこへのデータセットのロード、フレームのコピー、
現在の (作業中の) フレームの変更、フレームプレフィックスの使用などができます。
Stata 18 では、フレームの機能を拡張し、ユーザはframes save
コマンドを使用して
複数のフレーム (フレームセットと呼ばれます) を保存できるようになりました。
フレームセットは、後でframes use
コマンドを使用してメモリ内に復元できます。
フレームセットをディスクに保存すると、フレームセットは自動的に圧縮されます。
リンクされたフレームを自動的に保存することもできます。
frames describe
を使用すると、フレームとフレームが保持する変数をメモリとディスクの両方で把握できます。
フレームセットコマンドは、実行された処理の結果 (保存またはロードされたフレームのサブセット、
各フレームのデータがメモリ内で変更されたかどうか、圧縮ファイルのサイズなど) を追跡するために、
多数の r クラスの結果も保存します。
フレームセットに新しいデータ形式、.dta の複数形である .dtas が導入されました。
Stata を使用すると、.dtas ファイルを簡単に読み書きできます。
また、プログラマが他のソフトウェアに .dtas ファイルを作成または読み取らせたい場合に備えて、必要な情報がすべて提供されています。
詳細については、Stata にてhelp dtas
を実行して表示されるヘルプファイルを参照してください。
操作例
米国のさまざまな州の国勢調査と住宅との関係に関するプロジェクトに取り組んでいるとします。 census と hsng という 2 つの Stata データセットを使用しています。 次のように 2 つのデータセットを 2 つのフレームにロードできます。
. clear all
. frame create census
. frame change census
. webuse census
. frame create housing
. frame change housing
. webuse hsng
. pwf
pwf
(print working frame) によって、現在のフレームはhousingであるとわかります。
frlink
を使用してフレーム housingをフレームcensusにリンクし、変数の状態に基づいて観測値を 1 対 1 で照合します。
. frlink 1:1 state, frame(census)
ここでは必須ではありませんが、fralias add
を使用して、リンクされたフレーム内の変数を参照する変数エイリアスを作成できます。
エイリアスは、リンクされたフレームからの変数のコピーに似ていますが、使用するメモリはほとんどなく、その観測結果を変更することはできません。
例えば、リンクされたフレームのcensusで変数divorce (離婚の数) を参照するエイリアス d を作成できます。
. fralias add d = divorce, from(census)
次のコマンドを実行すると、フレーム housingとそれにリンクされている他のすべてのフレーム (この場合はcensus) を .dtas ファイル (例えば、myframeset.dtas) に保存できます。
. frames save myframeset, frames(housing) linked
frames use
およびframes describe
と同様に、frames save
でも
拡張子は .dtas が想定されます。
次のコマンドを実行すると、myframeset.dtas の内容を確認することができます。
. frames describe using myframeset
次のコマンドでメモリ内のすべてのフレームをクリアし、myframeset.dtas 内のすべてのフレームをロードできます。
. frames use myframeset, frames(_all) clear
参考
さらに詳しい内容につきましては、下記のマニュアルをご覧ください。