代码之家  ›  专栏  ›  技术社区  ›  Economist_Ayahuasca

考虑到年份和ID的变量滞后[重复]

  •  1
  • Economist_Ayahuasca  · 技术社区  · 7 年前

    这个问题已经有了答案:

    我有以下不平衡数据集:

    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 但当我使用函数滞后(a,1)时,它只会将列向下移动,从而产生不一致的结果。

    1 回复  |  直到 7 年前
        1
  •  2
  •   akrun    7 年前

    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
    
    推荐文章