gpt4 book ai didi

r - 在不平衡的面板数据集中对每个 ID 产生所有先前观察的滚动平均值

转载 作者:行者123 更新时间:2023-12-04 17:36:51 26 4
gpt4 key购买 nike

我正在尝试计算不平衡数据集的滚动均值。为了说明我的观点,我制作了这个数据的玩具示例:

ID  year  Var   RollingAvg(Var)
1 2000 2 NA
1 2001 3 2
1 2002 4 2.5
1 2003 2 3
2 2001 2 NA
2 2002 5 2
2 2003 4 3.5

栏目 RollingAvg(Var)是我想要的,却得不到。换句话说,我正在寻找 Var 之前所有观察值的滚动平均值。每个 ID .我试过使用 rollapplyddplyzooplyr包,但我看不到如何设置滚动窗口长度以使用每个 ID 的所有先前观察结果。也许我应该改用 plm 包?任何帮助表示赞赏。

我在 BALANCED 面板数据集上看到了其他关于滚动均值的帖子,但我似乎无法推断他们对不平衡数据的答案。

谢谢,

最佳答案

使用 data.table :

library(data.table)
d = data.table(your_df)

d[, RollingAvg := {avg = cumsum(Var)/seq_len(.N);
c(NA, avg[-length(avg)])},
by = ID]

(甚至简化)
d[, RollingAvg := c(NA, head(cumsum(Var)/(seq_len(.N)), -1)), by = ID]

关于r - 在不平衡的面板数据集中对每个 ID 产生所有先前观察的滚动平均值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16111242/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com