Stata 时间窗口内分类变量的不同级别数(按id)
这是我试图解决的问题 我有数据看起来像Stata 时间窗口内分类变量的不同级别数(按id),stata,Stata,这是我试图解决的问题 我有数据看起来像 id time pcode 1 1 1 1 2 1 1 3 1 1 4 2 1 5 4 1 6 1 我实际上有多个id;面板不是很平衡,事实上可能会有缺口,但这是一个复杂的问题,我会留到以后再说 pcode是一个分类变量,认为产品代码可能包含许多介于50到500个级别之间的代码 我试图在一个时间窗口内生成具有唯一pcode级别数的变量。例如,对于两个周期和三个
id time pcode
1 1 1
1 2 1
1 3 1
1 4 2
1 5 4
1 6 1
我实际上有多个id;面板不是很平衡,事实上可能会有缺口,但这是一个复杂的问题,我会留到以后再说
pcode是一个分类变量,认为产品代码可能包含许多介于50到500个级别之间的代码
我试图在一个时间窗口内生成具有唯一pcode级别数的变量。例如,对于两个周期和三个周期的窗口,我想分别生成两个变量ncode2和ncode3,如下所示
id time pcode ncode2 ncode3
1 1 1 1 2
1 2 1 2 3
1 3 1 2 3
1 4 2 2 2
1 5 4 1 1
1 6 1 . .
可以肯定的是:当time=1时,ncode2查看时间2和3;在时间2和3只有一级的pcode是1,所以ncode2=1。当时间=2时,ncode2查看时间3和4,找到唯一值1和2,并记录ncode2=2。等等
我不太关心当你开始到达小组的末尾时会发生什么;在这里,只要前面有一个周期要看,我就给ncode2和ncode3赋值,如果没有,我就给它赋值。我会在面板中创建包含下一个值的变量,后面的一个,依此类推 然后在包egenmore中应用egen函数rownvals,该包必须使用ssc安装 对于原则,相关技术在一定程度上进行了讨论,其中敦促使用术语“独特的、非唯一的”和“独立的”
此处使用的egen函数以使用Mata函数uniqrows为轴心,将向量减少为一组不同的值,每个值只出现一次 我看这里没有代码尝试。在这个论坛的许多角落里,都会有投票决定是否关闭。你的意思是投票反对,而不是关闭不;我说的是真的,投票结束。很少有人有单方面关闭的名声。对-我的意思是,根据你所说的,至少不是根据我发布的链接,不应该投票关闭。我认为你的问题值得回答,但是有很多关于Meta的讨论集中在没有代码的问题超出论坛范围的观点上,例如,没有显示任何研究成果或不清楚你在问什么,即我们不能评论你没有显示的代码。
. clear
. input id time pcode
id time pcode
1. 1 1 1
2. 1 2 1
3. 1 3 1
4. 1 4 2
5. 1 5 4
6. 1 6 1
7. 2 4 3
8. 2 5 4
9. 2 6 1
10. end
. tsset id time
panel variable: id (unbalanced)
time variable: time, 1 to 6
delta: 1 unit
. gen pcode1 = F.pcode
(2 missing values generated)
. gen pcode2 = F2.pcode
(4 missing values generated)
. gen pcode3 = F3.pcode
(6 missing values generated)
. egen distinct2 = rownvals(pcode1 pcode2)
. egen distinct3 = rownvals(pcode1 pcode2 pcode3)
. list, sepby(id)
+--------------------------------------------------------------------+
| id time pcode pcode1 pcode2 pcode3 distin~2 distin~3 |
|--------------------------------------------------------------------|
1. | 1 1 1 1 1 2 1 2 |
2. | 1 2 1 1 2 4 2 3 |
3. | 1 3 1 2 4 1 2 3 |
4. | 1 4 2 4 1 . 2 2 |
5. | 1 5 4 1 . . 1 1 |
6. | 1 6 1 . . . 0 0 |
|--------------------------------------------------------------------|
7. | 2 4 3 4 1 . 2 2 |
8. | 2 5 4 1 . . 1 1 |
9. | 2 6 1 . . . 0 0 |
+--------------------------------------------------------------------+