我的数据中的每一个观察结果都代表了一个遵循某种随机模式的玩家。up变量move1
表示每个玩家活跃的动作。我需要计算每个玩家活跃的次数:
数据如下所示(_count
代表我想生成的变量)。移动的数量也可以根据模拟而不同。
+------------+------------+-------+--------+------- +-------+-------+--------+--------+ | 模拟 | 播放列表 | 移动1 | 移动2 | 移动3 | 移动4 | 移动5 | 移动6 | _count | +------------+------------+-------+--------+------- +-------+-------+--------+--------+ | 1 | 1 | 1 | 1 | 1 | 2 | . | . | 3 | | 1 | 2 | 2 | 2 | 4 | 4 | . | . | 2 | | 2 | 3 | 1 | 2 | 3 | 3 | 3 | 3 | 4 | | 2 | 4 | 4 | 1 | 2 | 3 | 3 | 3 | 1 | +------------+------------+-------+--------+------- +-------+-------+--------+--------+
egen
在这种情况下组合 withanycount()
不适用,因为该value()
选项的参数不是常量整数。
我尝试循环遍历每个观察并按行使用egen
(见下文),但它一直count
丢失(如初始化)并且效率不高(我有 50,000 个观察)。有没有办法在Stata中做到这一点?
gen _count =.
quietly forval i = 1/`=_N' {
egen temp = anycount(move*), values( `=`playerlist'[`i']')
replace _count = temp
drop temp
}