У меня есть несбалансированный набор данных панели в Matlab, который мне нужно отстать. С несбалансированными панельными наборами данных довольно легко работать в R с пакетом plm
. Есть ли аналогичная функция в Matlab? Вот пример игрушки:
A = table(sort([repmat([1;2],4,1);repmat(3,3,1)]),[repmat((1994:1997).',2,1);(1995:1997).'],normrnd(100,1,11,1))
A =
Var1 Var2 Var3
____ ____ ______
1 1994 98.423
1 1995 100.51
1 1996 100.28
1 1997 100.03
2 1994 98.666
2 1995 101.13
2 1996 100.35
2 1997 99.701
3 1995 100.02
3 1996 99.738
3 1997 98.25
Для каждого экземпляра Var1 я хотел бы отложить значение Var3 на один год. Обратите внимание, что для 1994 года для Var1=3 нет значения. Таким образом, я хотел бы следующее:
Var1 Var2 Var3 Var4
____ ____ ______ ______
1 1994 98.423 NaN
1 1995 100.51 98.423
1 1996 100.28 100.51
1 1997 100.03 100.28
2 1994 98.666 NaN
2 1995 101.13 98.666
2 1996 100.35 101.13
2 1997 99.701 100.35
3 1995 100.02 NaN
3 1996 99.738 100.02
3 1997 98.25 99.738
Есть ли простой способ сделать это в Matlab?