Domanda
Utilizzando dplyr
, come faccio a selezionare le osservazioni / righe superiore e inferiore dei dati raggruppati in un'istruzione?
Dati ed esempio
Dato un frame di dati
df <- data.frame(id=c(1,1,1,2,2,2,3,3,3),
stopId=c("a","b","c","a","b","c","a","b","c"),
stopSequence=c(1,2,3,3,1,4,3,1,2))
Posso ottenere le osservazioni in alto e in basso da ciascun gruppo usando slice
, ma usando due istruzioni separate:
firstStop <- df %>%
group_by(id) %>%
arrange(stopSequence) %>%
slice(1) %>%
ungroup
lastStop <- df %>%
group_by(id) %>%
arrange(stopSequence) %>%
slice(n()) %>%
ungroup
Posso combinare queste due statmenet in una che seleziona sia le osservazioni top che bottom?