如何使用dplyr检测面板数据中变量随时间的变化?

如何使用dplyr检测面板数据中变量随时间的变化?,r,dplyr,hierarchical-data,panel-data,R,Dplyr,Hierarchical Data,Panel Data,我使用的是面板数据,年龄变量存在一些差异。对于一些受访者,他们的年龄从一年到另一年增加或减少了1岁以上,我们可以看到ID号为2和3以下的受访者。这可能是由于数据输入问题或我自己无法解决的其他原因造成的 请有人指导我如何创建一个新的变量,用于检测年龄增长超过1个值或年龄从一年减少到另一年的人,如下面的ID 2和ID 3所示 id age year 1 25 2005 1 26 2006 1 27 2007 2 50 2006 2 51 2007 2 36 20

我使用的是面板数据,年龄变量存在一些差异。对于一些受访者,他们的年龄从一年到另一年增加或减少了1岁以上,我们可以看到ID号为2和3以下的受访者。这可能是由于数据输入问题或我自己无法解决的其他原因造成的

请有人指导我如何创建一个新的变量,用于检测年龄增长超过1个值或年龄从一年减少到另一年的人,如下面的ID 2和ID 3所示

id  age year
1   25  2005
1   26  2006
1   27  2007
2   50  2006
2   51  2007
2   36  2008
3   25  2005
3   30  2006


structure(list(id = structure(c(1, 1, 1, 2, 2, 2, 3, 3), format.stata = "%9.0g"), 
    age = structure(c(25, 26, 27, 50, 51, 36, 25, 30), format.stata = "%9.0g"), 
    year = structure(c(2005, 2006, 2007, 2006, 2007, 2008, 2005, 
    2006), format.stata = "%9.0g")), row.names = c(NA, -8L), class = c("tbl_df", 
"tbl", "data.frame"))

您可以使用
groupby
lag
检查更改

df %>%
  arrange(id, year) %>%
  group_by(id) %>%
  mutate(
    age_change = age - lag(age),
    age_bigincrease = age_change > 1,
    age_decrease = age_change < 0
  )
df%>%
安排(id,年份)%>%
分组依据(id)%>%
变异(
年龄变化=年龄-滞后(年龄),
年龄增大=年龄变化>1,
年龄减少=年龄变化<0
)
会回来吗

# A tibble: 8 x 6
# Groups:   id [3]
     id   age  year age_change age_bigincrease age_decrease
  <dbl> <dbl> <dbl>      <dbl> <lgl>           <lgl>       
1     1    25  2005         NA NA              NA          
2     1    26  2006          1 FALSE           FALSE       
3     1    27  2007          1 FALSE           FALSE       
4     2    50  2006         NA NA              NA          
5     2    51  2007          1 FALSE           FALSE       
6     2    36  2008        -15 FALSE           TRUE        
7     3    25  2005         NA NA              NA          
8     3    30  2006          5 TRUE            FALSE  
#一个tible:8 x 6
#组别:id[3]
id年龄年年龄变化年龄大增加年龄减少
1 1 25 2005年不适用
2 1 26 2006 1假
3 1 27 2007 1假
420006年不适用
525120071false
6 2 36 2008-15假-真
7 3 25 2005年不适用
8 3 30 2006 5对错