if 语句中的滞后范围

问题描述 投票:0回答:1

我已成功在替换的“IF”部分中使用滞后值。 如何指定一个范围而不是每个单独的滞后变量。 迭代不是一种选择。 我有大约 1000 万个观察结果。

{
g buy2=0
replace buy2 = 5 if buy2[_n-1]==0  & buy2[_n-2]==0
}

正如 buy2 中所预期的那样,每三次观察,0 就会被 5 替换。

我的问题是我需要 _n-1 - _n-900 中的这个,而不需要逐一输入或迭代。

stata
1个回答
0
投票

如果

buy2
在长度为 900 的 0 次运行后为 5,那么你想要

gen buy2 = 0 
replace buy2 = 5 if mod(_n, 901) == 0 

尽管这似乎是一件相当不寻常的事情。

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.