Используя базу R, отсортированную по значениям 'var_3', удвоенным до 'var_2'.
with(test_frame, test_frame[order(-rep(var_3[!duplicated(var_2)], each=2)), ])
# # A tibble: 10 x 3
# var_1 var_2 var_3
# <chr> <chr> <dbl>
# 1 a a4 4.79
# 2 b a4 1.33
# 3 a a2 3.24
# 4 b a2 4.62
# 5 a a5 3.06
# 6 b a5 2.56
# 7 a a3 1.55
# 8 b a3 4.96
# 9 a a1 1.47
# 10 b a1 2.90
Данные
test_frame <- structure(list(var_1 = c("a", "b", "a", "b", "a", "b", "a", "b",
"a", "b"), var_2 = c("a1", "a1", "a2", "a2", "a3", "a3", "a4",
"a4", "a5", "a5"), var_3 = c(1.46994944661856, 2.89998832624406,
3.24133098497987, 4.61612554918975, 1.55484067089856, 4.95556691568345,
4.78667293023318, 1.32975023239851, 3.05684713739902, 2.56081386841834
)), row.names = c(NA, -10L), class = c("tbl_df", "tbl", "data.frame"
))