Ich habe folgenden Datenrahmen in R:Unterschiede zwischen den Reihen mit unterschiedlichen Zeilen als Start
ID year event_year
432674326 2000 NA
432674326 2001 NA
432674326 2002 NA
432674326 2003 NA
432674326 2004 NA
432674326 2005 2005_1
432674326 2006 NA
432674326 2007 NA
432674326 2008 NA
432876423 2003 NA
432876423 2004 NA
432876423 2005 NA
432876423 2006 NA
432876423 2007 2007_82
432876423 2008 NA
432876423 2009 NA
432876423 2010 NA
Und ich möchte eine Spalte erstellen, die auf jeder Zeile den Unterschied zwischen meinem Veranstaltungsjahr und dem jeweiligen Jahr berechnet. Das Ergebnis sollte wie folgt aussehen:
ID year event_year timediff
432674326 2000 NA -5
432674326 2001 NA -4
432674326 2002 NA -3
432674326 2003 NA -2
432674326 2004 NA -1
432674326 2005 2005_1 0
432674326 2006 NA 1
432674326 2007 NA 2
432674326 2008 NA 3
432876423 2003 NA -4
432876423 2004 NA -3
432876423 2005 NA -2
432876423 2006 NA -1
432876423 2007 2007_82 0
432876423 2008 NA 1
432876423 2009 NA 2
432876423 2010 NA 3
Ich war mit plyr versucht, aber ich kann das Basisjahr auf das Ereignis Jahr nicht beheben. Ich kann nur eine bestimmte Verzögerung wie unten verwenden, die mir nicht das beabsichtigte Ergebnis gibt.
df %>%
group_by(ID) %>%
mutate(timediff = year - lag(year))
Jede Hilfe wird sehr geschätzt!