我有一个看起来像这样的数据集
State Year Policy other_variables
a 2000 0 18
a 2000 0 19
.
.
.
a 2001 1 86
a 2001 1 23
每个州和每年的poicy值都是恒定的。但它会因不同的州和不同的年份而发生变化。每个观察的其他变量是不同的。
我想为每个州生成政策价值滞后。但是,我无法使用xtset state year
,然后使用L
运算符。每个州年组合中都有重复的值。我知道折叠数据集,生成滞后变量然后合并回数据集将起作用。我的问题是有一个简单的方法来做这个操作吗?
答案 0 :(得分:1)
这可能有所帮助:
clear
input str1 State Year Policy
a 2000 0
a 2000 0
a 2001 1
a 2001 1
end
bysort State (Year) : gen diff = Policy - Policy[_n-1] if Year == Year[_n-1] + 1
by State Year: replace diff = diff[_n-1] if missing(diff)
list, sepby(State Year)
+------------------------------+
| State Year Policy diff |
|------------------------------|
1. | a 2000 0 . |
2. | a 2000 0 . |
|------------------------------|
3. | a 2001 1 1 |
4. | a 2001 1 1 |
+------------------------------+