question
using dplyr, how select top , bottom observations/rows of grouped data in 1 statement?
data & example
given data frame
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)) i can top , bottom observations each group using slice, using 2 separate statments:
firststop <- df %>% group_by(id) %>% arrange(stopsequence) %>% slice(1) %>% ungroup laststop <- df %>% group_by(id) %>% arrange(stopsequence) %>% slice(n()) %>% ungroup can combine these 2 statmenets 1 selects both top , bottom observations?
there faster way:
df %>% group_by(id) %>% arrange(stopsequence) %>% filter(row_number()==1 | row_number()==n())
Comments
Post a Comment