例えば、労働者のある時点の給与w_tをもとにその労働者の給与の履歴{w_s}s=0,..,t-1を計算したいとする。履歴は、観察可能な給与にある定数をかけるとでてくるとする。
w_s = w_t*r[s]
しかしながらこのrが労働者の教育に依存するとすると、場合分けが必要となる。
この場合、Rではkroneckerと条件式()を使うといい。
これは実際のコードの一部。
W.h[1:36, ] <- kronecker(t(W.h[36,]), rep(1,36))* (kronecker(t(Ed.h == 1), Profile$dropout) + kronecker(t(Ed.h == 2), Profile$hs) + kronecker(t(Ed.h == 3), Profile$anycol)+ kronecker(t(Ed.h == 4), Profile$colgrad))
W.hはwage historyのN×36行列、Profileは教育別の各時点の給与と50歳時の給与との比率。こうして書けば、ループを使わずにW.h[36,]を元に教育別の給与歴を一瞬で計算できる。(...)が秀逸で、カッコ内が真なら1、偽なら0を返してくれる。