Как отсортировать матрицу по нескольким столбцам одновременно - PullRequest
0 голосов
/ 21 июня 2019

Я использую пакет struct :: matrix и хочу отсортировать матрицу по двум или более столбцам одновременно. Возможно ли это?

Я прочитал справочную страницу struct :: matrix, но не получил подсказки.

1 Ответ

1 голос
/ 21 июня 2019

Самый простой метод (поскольку базовый метод сортировки не гарантированно стабилен) - это вычисление дополнительного столбца, который содержит составной ключ сравнения , который объединяет два значения, затемСортировка по этому столбцу и, наконец, удаление столбца впоследствии.

$m add column [lmap primary [$m get column 1] secondary [$m get column 2] {
    # There are many ways to make collation keys; here's one suitable for simple words...
    string cat $primary "," $secondary
}]
# Sort the rows by the final (new!) column
$m sort rows end
# Delete the no-longer-needed column
$m delete column end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...