我想从篮球数据集中生成滚动平均变量。因此,如果第一次观察是1月1日的25点,则生成的变量将显示25.如果第二次观察是1月2日的30点,则生成的变量将显示27.5。如果第三次观察是35分,则生成的变量将显示30等。
答案 0 :(得分:3)
对于变量y
排序的某个时间t
最简单的是迄今为止的平均值
gen yave = sum(y) / _n
这是累积和除以观察数。如果偶尔会出现缺失值,sum()
会忽略它们,但分母需要修复,比如说
gen yave = sum(y) / sum(y < .)
这很容易推广到面板结构
bysort id (t) : gen yave = sum(y) / sum(y < .)
答案 1 :(得分: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