我想从篮球数据集中生成一个滚动平均变量。因此,如果在 1 月 1 日第一次观察是 25 点,则生成的变量将显示 25。如果在 1 月 2 日第二次观察是 30 点,则生成的变量将显示 27.5。如果第三个观测值是 35 个点,则生成的变量将显示 30,以此类推。
问问题
5870 次
2 回答
3
y
对于按最简单的时间排序的变量t
,迄今为止的平均值是
gen yave = sum(y) / _n
这是累积总和除以观察次数。如果偶尔有缺失值,它们会被忽略,sum()
但分母需要固定,比如
gen yave = sum(y) / sum(y < .)
这很容易概括为面板结构
bysort id (t) : gen yave = sum(y) / sum(y < .)
于 2015-02-15T00:45:29.010 回答
0
这是我想出的解决方案。我必须创建三个变量,一个累积积分(分子)和一个运行计数(分母),然后将这两个变量相除以获得每场比赛的玩家积分:
gen player_pts = points if player[_n]!=player[_n-1]
replace player_pts=points+player_pts[_n-1] if player[_n]==player[_n-1]&[_n]!=1
by player: gen player_games= [_n]
gen ppg=player_pts/player_games
于 2015-02-15T14:29:45.590 回答