不使用by或sort命令创建标识符

时间:2017-02-07 02:00:52

标签: stata

我有一个没有id或year变量的面板数据集。但我知道数据是按顺序排列的,因此每七个观测值代表一个人,七个观测值中的每一个代表一年。我需要创建单独的id变量,但我不知道如何在不使用Stata命令by:sort的情况下执行此操作。

1 个答案:

答案 0 :(得分:0)

有各种方法可以继续。一种是使用egen函数seq()来创建序列变量。

egen long id = seq(), block(7) 

大型数据集需要明确的long。使用此语法,标识符将运行1,1,1,1,1,1,1,2,2,2,2,2,2,2等。

egen year = seq(), from(1) to(7) 

显然,如果你知道它们,你应该用实际的开始和结束年代替17

这里的egen函数只是更多基本函数和命令的包装器。这是另一种方法:

gen id2 = ceil(_n/7)
gen year2 = mod(_n - 1, 7) + 1