我的数据集如下所示
x1
1
0
0
1
0
0
1
1
在此数据集中,以下1的值属于同一组。例如,前2 0属于第1组,第2 2 0属于第二组a等等。我想得到一个类似于此的最后输出。请注意,两个1之间的增量是任意的:
x1 x2
1 1
0 1
0 1
1 2
0 2
0 2
1 3
1 4
我想我需要写一个循环来检查观察结果。但我无法弄清楚实现这一目标的逻辑语句。
发布于 2015-01-14 15:22:46
任一
gen x2 = sum(x1)
或
gen x2 = sum(x1 == 1)
就够了。与往常一样,在观察中有一个循环,但是你不需要一个明确的循环。
详细地说,这里的sum()
是一个累积的或正在运行的总和。在您的例子中,第一个解决方案是简单而充分的。之所以提到第二个解决方案,是因为它更通用:我们可以用1标记每个块或拼写中的第一个观察,然后创建一个运行和,以形成1s、2s等块。
https://stackoverflow.com/questions/27945546
复制相似问题