ich einen Datensatz mit historischen Daten haben, und ich will es in zwei Sätze brechen:Daten Split basierend auf einer logischen Beziehung in R
- Der Satz von IDs, die ich ihre Daten für mindestens zwei aufeinander folgenden Jahren .
- Es ist Komplement, d. H. Die Menge der IDs, die ich habe ein oder mehrere Jahre Daten von ihnen, aber in nicht aufeinanderfolgenden Jahren.
Zum Beispiel, lassen Sie uns Daten übernehmen gesetzt A:
A =
ID Year X Y
1 2010 2 3
1 2012 4 0
2 2011 4 3
2 2012 2 2
3 2010 3 1
3 2012 2 1
3 2013 0 3
Ich will die Menge B erhalten:
B =
ID Year X Y
2 2011 4 3
2 2012 2 2
3 2012 2 1
3 2013 0 3
B'=
ID Year X Y
1 2010 2 3
1 2012 4 0
3 2010 3 1
Beachten Sie, dass ID 3 in beiden B
gezeigt und B'
, weil es hat Aufzeichnungen von aufeinanderfolgenden Jahren und einem einzigen Jahr.
Ich muss das nicht in R tun, ich kann Python auch verwenden. Jede Hilfe wäre willkommen.
Sie die Logik übersetzen kann mit so etwas wie 'df [Ordnung (df $ ID),] [fehlenden oder (tapply (df $ Year, df $ ID, Funktion (x zur Basis) {x% in% c (x + 1, x - 1)}))]], aber das ist nicht annähernd so schön. – alistaire