Stata:循环观察
Stata: looping over observations
我的数据集是这样的
x1
1
0
0
1
0
0
1
1
在这个数据集中,1后面的值属于同一组。例如,前 2 个零属于第 1 组,后 2 个零属于第 2 组,依此类推。我想得到与此类似的最终输出。请注意,两个 1 之间的增量是任意的:
x1 x2
1 1
0 1
0 1
1 2
0 2
0 2
1 3
1 4
我想我需要编写一个遍历观察结果的循环。但我无法弄清楚将实现这一目标的逻辑陈述。
或者
gen x2 = sum(x1)
或
gen x2 = sum(x1 == 1)
足够了。那里有一个默认的观察循环,但您不需要显式循环。
详细来说,sum()
这里是一个累加或者运行总和。在您的情况下,第一个解决方案简单且足够。提到第二个解决方案的原因是因为它更通用:我们可以用 1 标记每个块或拼写中的第一个观察结果,然后创建一个 运行 总和以形成 1、2 等块。
我的数据集是这样的
x1
1
0
0
1
0
0
1
1
在这个数据集中,1后面的值属于同一组。例如,前 2 个零属于第 1 组,后 2 个零属于第 2 组,依此类推。我想得到与此类似的最终输出。请注意,两个 1 之间的增量是任意的:
x1 x2
1 1
0 1
0 1
1 2
0 2
0 2
1 3
1 4
我想我需要编写一个遍历观察结果的循环。但我无法弄清楚将实现这一目标的逻辑陈述。
或者
gen x2 = sum(x1)
或
gen x2 = sum(x1 == 1)
足够了。那里有一个默认的观察循环,但您不需要显式循环。
详细来说,sum()
这里是一个累加或者运行总和。在您的情况下,第一个解决方案简单且足够。提到第二个解决方案的原因是因为它更通用:我们可以用 1 标记每个块或拼写中的第一个观察结果,然后创建一个 运行 总和以形成 1、2 等块。