r语言 - 考虑年份和 ID 的滞后变量



我有以下不平衡数据集:

id Year A
1  1    5
1  2    6
2  1    11
2  2    12
2  3    13
3  2    1
3  3    3

我想提供一个变量 lagA,它真正考虑了每个观察的年份和 id,而不仅仅是将列向下移动:

id Year A   lagA
1  1    5   NA
1  2    6   5
2  1    11  NA
2  2    12  11
2  3    13  12
3  2    1   NA
3  3    3   1

有什么想法吗?我尝试确保数据帧是 pf 类pdata.frame但是当我使用函数 lag(A,1) 时,它只是将列向下移动,从而产生不一致的结果。

我们需要按"id"分组,然后执行lag

library(dplyr)
df1 %>%
arrange(id, Year) %>% # in case not ordered by 'year'
group_by(id) %>%
mutate(lagA = lag(A))
# A tibble: 7 x 4
# Groups:   id [3]
#     id  Year     A  lagA
#  <int> <int> <int> <int>
#1     1     1     5    NA
#2     1     2     6     5
#3     2     1    11    NA
#4     2     2    12    11
#5     2     3    13    12
#6     3     2     1    NA
#7     3     3     3     1

相关内容

  • 没有找到相关文章

最新更新