題使用dplyr,如何在一個語句中選擇分組數(shù)據(jù)的頂部和底部觀察/行?數(shù)據(jù)與示例給定數(shù)據(jù)框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) %>% ungrouplastStop <- df %>% group_by(id) %>% arrange(stopSequence) %>% slice(n()) %>% ungroup我可以將這兩個statmenets合并成一個選擇兩個頂部和底部的意見?
3 回答

慕沐林林
TA貢獻(xiàn)2016條經(jīng)驗 獲得超9個贊
可能有一種更快的方法:
df %>%
group_by(id) %>%
arrange(stopSequence) %>%
filter(row_number()==1 | row_number()==n())

忽然笑
TA貢獻(xiàn)1806條經(jīng)驗 獲得超5個贊
僅出于完整性考慮:您可以傳遞slice索引向量:
df %>% arrange(stopSequence) %>% group_by(id) %>% slice(c(1,n()))
這使
id stopId stopSequence
1 1 a 1
2 1 c 3
3 2 b 1
4 2 c 4
5 3 b 1
6 3 a 3
- 3 回答
- 0 關(guān)注
- 1102 瀏覽
添加回答
舉報
0/150
提交
取消