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の生成について考えることにします。
変数に対する要素レベルでのアクセスということでは、income[_n]によって現時点でのobservationが、income[_n-1]によって1期前のobservationが参照されることになります。このため、
. generate diff1 = income[_n] - income[_n-1]
という操作によって差分が算出できることになります。
. list t income diff1
なお、income[0]の値は定義されないため、欠損値が生じている点に注意してください。
このような時系列データに対しては時系列演算子(tb011参照)を用いるのが一般的です。ただし、時系列演算子を使用するには、あらかじめデータを時系列データとして初期化しておく必要があります。tssetコマンドについては [TS] tsset (mwp-002) をご参照ください。
. tsset t
差分を表す演算子はD.です。
. generate diff2 = D.income
. list t income diff1 diff2
添え字参照で得られたdiff1と全く同一の結果が得られていることがわかります。
要素レベルでのデータ変更も同じ流儀で
. replace income[3] = 1000
とやりたくなりますが、これはエラーとなります。
replaceコマンドの場合にはin指定を使用してください。
. replace income = 1000 in 3
. list t income
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = |
© 2018 Math工房