Получение верхнего И нижнего значений R Кадр данных

#r #dplyr #tidyverse #data-manipulation

Вопрос:

Ищу способ выбрать 3 верхние И 3 нижние строки по значению. Я пытался использовать slice_max() в сочетании с slice_min (), но безуспешно.

 id value a 0.9 b 0.2 c -0.4 d -0.9 e 0.6 f 0.8 g -0.3 h 0.1 i 0.2 j 0.5 k -0.2  # Desired output: lt;brgt; a 0.9 f 0.8 e 0.6 d -0.9 c -0.4 g -0.3  

Ответ №1:

dplyr

 dat %gt;%  filter(!between(dense_rank(value), 4, n() - 4)) # id value # 1 a 0.9 # 2 c -0.4 # 3 d -0.9 # 4 e 0.6 # 5 f 0.8 # 6 g -0.3  

или

 dat %gt;%  arrange(value) %gt;%  slice( unique(c(1:3, n() - 0:2)) )