переменная отставания по группе в r - dplyr lag не работает - PullRequest
0 голосов
/ 10 марта 2019

У меня есть тиббл следующим образом:

year state win 
2008 AL    DEM
2008 MA    DEM
2008 VT    DEM
2012 AL    DEM
2012 MA    DEM
2012 VT    DEM
2016 AL    GOP
2016 MA    GOP
2016 VT    GOP

Я хочу создать переменную win_lag. Ожидаемый результат:

year state win win_lag
2004 AL    GOP <NA>
2004 MA    GOP <NA>
2004 VT    GOP <NA>
2008 AL    DEM GOP
2008 MA    DEM GOP
2008 VT    DEM GOP
2012 AL    DEM DEM 
2012 MA    DEM DEM
2012 VT    DEM DEM

Я пытался использовать:

df = df  %>%  group_by(state) %>%
      mutate(win_lag= lag(df$win,   n=1L, default=NA, order_by=year))

Результат таков:

year state win win_lag
2004 AL    GOP <NA>
2004 MA    GOP <NA>
2004 VT    GOP GOP
2008 AL    DEM GOP
2008 MA    DEM GOP
2008 VT    DEM GOP
2012 AL    DEM GOP 
2012 MA    DEM GOP
2012 VT    DEM GOP

В чем может быть проблема? Любое предложение о том, как еще действовать?

...