Ho dati che assomiglia a questo:Dplyr o data.table consolidare righe consecutive raggio dati raggruppati in base al valore in un'altra colonna
ID CLASS START END
100 GA 3-Jan-15 1-Feb-15
100 G 1-Feb-15 22-Feb-15
100 GA 28-Feb-15 17-Mar-15
100 G 1-Apr-15 8-Apr-15
100 G 10-Apr-15 18-Apr-15
200 FA 3-Jan-14 1-Feb-14
200 FA 1-Feb-14 22-Feb-14
200 G 28-Feb-14 15-Mar-14
200 F 1-Apr-14 20-Apr-14
Ecco i dati:
df <- structure(list(ID = c(100L, 100L, 100L, 100L, 100L, 200L, 200L,
200L, 200L), CLASS = structure(c(4L, 3L, 4L, 3L, 3L, 2L, 2L,
3L, 1L), .Label = c("F", "FA", "G", "GA"), class = "factor"),
START = structure(c(9L, 4L, 7L, 2L, 5L, 8L, 3L, 6L, 1L), .Label = c("1-Apr-14",
"1-Apr-15", "1-Feb-14", "1-Feb-15", "10-Apr-15", "28-Feb-14",
"28-Feb-15", "3-Jan-14", "3-Jan-15"), class = "factor"),
END = structure(c(2L, 8L, 4L, 9L, 5L, 1L, 7L, 3L, 6L), .Label = c("1-Feb-14",
"1-Feb-15", "15-Mar-14", "17-Mar-15", "18-Apr-15", "20-Apr-14",
"22-Feb-14", "22-Feb-15", "8-Apr-15"), class = "factor")), .Names = c("ID",
"CLASS", "START", "END"), class = "data.frame", row.names = c(NA,
-9L))
desidero per raggruppare i dati per la colonna ID e quindi consolidare eventuali occorrenze consecutive dello stesso valore nella colonna CLASS (ordinate per data START), selezionando la data di inizio minima e la data di fine massima. Quindi, per il numero ID 100, c'è solo un'istanza in cui la classe "G" è consecutiva, quindi vorrei consolidare quelle due righe in una singola riga con le date min (START) e max (END). Questo è un semplice esempio, ma nei dati reali a volte ci sono diverse righe consecutive che devono essere consolidate.
Ho provato group_by seguito utilizzando una sorta di classifica, ma questo non sembra fare il trucco. Qualche suggerimento su come risolvere questo? Anche questa è la prima volta che pubblico su SO, quindi spero che questa domanda abbia senso.
risultato dovrebbe assomigliare a questo:
ID CLASS START END
100 GA 3-Jan-15 1-Feb-15
100 G 1-Feb-15 22-Feb-15
100 GA 28-Feb-15 17-Mar-15
100 G 1-Apr-15 18-Apr-15
200 FA 3-Jan-14 22-Feb-14
200 G 28-Feb-14 15-Mar-14
200 F 1-Apr-14 20-Apr-14
I due 'FA' in ID 200 non devono essere consolidati come w ell? –
@CactusWoman questo è giusto! Modificherò la tabella. – Kartik