Мы можем изменить порядок, выполнив сначала arrange
, а затем выполнить группировку
library(dplyr)
df %>%
arrange(desc(group)) %>%
group_by(group)
# A tibble: 14 x 3
# Groups: group [4]
# x y group
# <int> <int> <chr>
# 1 3 2 z
# 2 1 1 z
# 3 2 2 z
# 4 1 1 g
# 5 1 1 g
# 6 1 1 g
# 7 1 1 g
# 8 1 1 g
# 9 1 1 b
#10 2 2 b
#11 2 2 b
#12 3 3 a
#13 1 2 a
#14 3 3 a
Если нам нужно упорядочить данные по частоте, создайте столбец подсчетов с помощью add_count
используйте arrange
со значениями на основе 'n' и удалите этот столбец
df %>%
add_count(group) %>%
arrange(desc(n)) %>%
select(-n)
# x y group
#1 1 1 g
#2 1 1 g
#3 1 1 g
#4 1 1 g
#5 1 1 g
#6 3 2 z
#7 1 1 z
#8 2 2 z
#9 3 3 a
#10 1 2 a
#11 3 3 a
#12 1 1 b
#13 2 2 b
#14 2 2 b
data
df <- structure(list(x = c(3L, 1L, 2L, 3L, 1L, 3L, 1L, 2L, 2L, 1L,
1L, 1L, 1L, 1L), y = c(2L, 1L, 2L, 3L, 2L, 3L, 1L, 2L, 2L, 1L,
1L, 1L, 1L, 1L), group = c("z", "z", "z", "a", "a", "a", "b",
"b", "b", "g", "g", "g", "g", "g")), class = "data.frame",
row.names = c(NA,
-14L))