我的数据集中的观察值是玩家,temp1
如果玩家移动,二进制变量 up 等于 1,否则等于 0。我想计算每个玩家的最大连续移动次数。
+------------+------------+-------+--------+------- +-------+-------+--------+ | 模拟 | 播放列表 | 温度1 | 温度2 | 温度3 | 温度4 | 温度5 | 温度6 | +------------+------------+-------+--------+------- +-------+-------+--------+ | 1 | 1 | 0 | 1 | 1 | 1 | 0 | 0 | | 1 | 2 | 1 | 0 | 0 | 0 | 1 | 1 | +------------+------------+-------+--------+------- +-------+-------+--------+
我的想法是在循环中生成辅助变量,这将计算连续重复,然后应用 egen,rowmax():
+------------+------------+------+------+------+-- -----+-----+------+------+ | 模拟 | 播放列表 | 辅助1 | 辅助2 | 辅助3 | 辅助4 | 辅助5 | 辅助6 | _最大 | +------------+------------+------+------+------+-- -----+-----+------+------+ | 1 | 1 | 0 | 1 | 2 | 3 | 0 | 0 | 3 | | 1 | 2 | 1 | 0 | 0 | 0 | 1 | 2 | 2 | +------------+------------+------+------+------+-- -----+-----+------+------+
我正在努力引入一个局部计数器变量,如果连续移动,该变量将递增 1,否则将重置为零(下面的代码保持辅助变量固定..):
quietly forval i = 1/42 { /*42 is max number of variables temp*/
local j = 1
gen aux`i'=.
local j = `j'+1
replace aux`i'= `j' if temp`i'!=0
}