tb010  添え字付き参照



今、xという名前の変数があったとき、単にxと参照すると、それはすべてのobservationsを含むベクトルを参照したことになります。それに対し、x[1], x[2], ...という形で参照した場合には、要素参照、すなわち個々のobservationを参照することになります。ここではシステム変数_n(tb005参照)を用いた用例を紹介します。

使用するデータセットはExampleデータセットtssetxmpl.dtaです。

. use http://www.stata-press.com/data/r15/tssetxmpl.dta

このデータセット中には次のような9件のデータが含まれています。

. list t income

ここでは1期前のincomeとの差分を含む変数diffの生成について考えることにします。
 

(1) 添え字参照による方法

変数に対する要素レベルでのアクセスということでは、income[_n]によって現時点でのobservationが、income[_n-1]によって1期前のobservationが参照されることになります。このため、

. generate diff1 = income[_n] - income[_n-1]

という操作によって差分が算出できることになります。

. list t income diff1

なお、income[0]の値は定義されないため、欠損値が生じている点に注意してください。
 

(2) 時系列演算子による方法

このような時系列データに対しては時系列演算子(tb011参照)を用いるのが一般的です。ただし、時系列演算子を使用するには、あらかじめデータを時系列データとして初期化しておく必要があります。tssetコマンドについては [TS] tsset (mwp-002) をご参照ください。

. tsset t

差分を表す演算子はD.です。

. generate diff2 = D.income
. list t income diff1 diff2

添え字参照で得られたdiff1と全く同一の結果が得られていることがわかります。
 

(3) replace操作

要素レベルでのデータ変更も同じ流儀で

. replace income[3] = 1000

とやりたくなりますが、これはエラーとなります。

replaceコマンドの場合にはin指定を使用してください。

. replace income = 1000 in 3
. list t income


小技コーナー ページへ戻る

 = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =

© 2018 Math工房