Вы вопрос должен быть намного яснее. Как определяются значения в B
и C
? Из описания, похоже, что они должны быть только соответствующими значениями в столбцах A
исходных данных, но это не так в вашем примере.
Пока вы не уточните, вот в базе R, которая сортирует строки по A
в соответствии с вашим условием.
d <- as.matrix(read.table(text="A B C
1 11 14
2 2 2
2 5 12
2 13 2
3 16 19
3 10 0
4 20 17
5 5 16
7 14 18
7 8 10
7 10 17
7 7 0", header=TRUE))
counts <- table(d[,'A'])
ranks <- rank(interaction(counts, names(counts), lex.order=TRUE))
d[order(ranks[match(d[,'A'], names(counts))], decreasing=TRUE), ]
# A B C
# [1,] 7 14 18
# [2,] 7 8 10
# [3,] 7 10 17
# [4,] 7 7 0
# [5,] 2 2 2
# [6,] 2 5 12
# [7,] 2 13 2
# [8,] 3 16 19
# [9,] 3 10 0
# [10,] 5 5 16
# [11,] 4 20 17
# [12,] 1 11 14