Stata:基于局部变量列表创建变量
我有一个如下所示的数据集:Stata:基于局部变量列表创建变量,stata,stata-macros,Stata,Stata Macros,我有一个如下所示的数据集: A B 0 1 0 1 0 1 1 0 我想为t=1,2,3创建新变量A't'和B't',为过去的1,2和3个周期提供A和B值。我尝试了以下代码,但出现了错误:“一个无效的名称 local status A B foreach x of local status { forvalues t=1/3 { gen "`x'"`t'="`x'"[_n-`t'] if _n>`t' }
A B
0 1
0 1
0 1
1 0
我想为t=1,2,3创建新变量A't'和B't',为过去的1,2和3个周期提供A和B值。我尝试了以下代码,但出现了错误:“一个无效的名称
local status A B
foreach x of local status {
forvalues t=1/3 {
gen "`x'"`t'="`x'"[_n-`t'] if _n>`t'
}
}
我想得到的结果如下:
A B A1 A2 A3 B1 B2 B3
0 1 . . . . . .
1 0 0 . . 1 . .
0 1 1 0 . 0 1 .
1 0 0 1 0 1 0 1
这项工作:
clear
input A B
0 1
0 1
0 1
1 0
end
foreach x in A B {
forval t = 1/3 {
gen `x'`t' = `x'[_n-`t']
}
}
注:
local
中,只是为了再次取出它们并没有害处,但在其他情况下是没有意义的
if
限定符不会有什么坏处,但是如果没有它,您会得到相同的结果
gen t = _n
然后你就可以走了
tsset t
然后,滞后变量将自动作为L1.A L2.A L3.A
等提供
如果实际数据是面板数据或纵向数据,则需要标识符和时间变量