最佳答案
提问
使用 dplyr
,如何在一个语句中选择分组数据的顶部和底部的观察值/行?
数据及例子
给定一个数据框架:
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))
我可以使用 slice
从每组中得到顶部和底部的观察结果,但是使用两个独立的语句:
firstStop <- df %>%
group_by(id) %>%
arrange(stopSequence) %>%
slice(1) %>%
ungroup
lastStop <- df %>%
group_by(id) %>%
arrange(stopSequence) %>%
slice(n()) %>%
ungroup
我是否可以将这两个语句组合成一个选择 都有顶部和底部观察值的语句?