gpt4 book ai didi

Stata:基于本地变量列表创建变量

转载 作者:行者123 更新时间:2023-12-03 23:38:34 25 4
gpt4 key购买 nike

我有一个看起来像这样的数据集:

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 qualifier 不会造成任何伤害,但没有它你会得到相同的结果。

  • 最重要的是,有经验的 Stata 用户不会这样做。前一个、前两个等值的想法只有在观察按时间或其他顺序顺序时才有意义,在这种情况下,大多数分析需要一个明确的类时间变量,例如
    gen t = _n 
    之后你可以去
    tsset t 
    然后滞后变量会自动以 L1.A L2.A L3.A 形式提供等等。
    如果您的真实数据是面板或纵向数据,那么您需要一个标识符和一个时间变量。

    关于Stata:基于本地变量列表创建变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67661854/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com