Что самый эффективный путь состоит в том, чтобы отсортировать два вектора в строго установленном порядке в R? Первый вектор должен быть отсортирован в порядке возрастания, и второе должно быть переупорядочено в строго установленном порядке таким образом, что элементы с соответствующими индексами перед видом все еще имеют соответствующие индексы после вида. Например:
foo <- c(1,3,2, 5,4)
bar <- c(2,6,4,10,8)
sort2(foo, bar)
# foo == c(1,2,3,4, 5)
# bar == c(2,4,6,8,10)
Примечание: Эффективность является насущной необходимостью здесь, поскольку я пытаюсь использовать это в качестве основания для создания O (N, регистрируют N), реализация Tau Kendall для представления как патч. Я хотел бы постараться не писать свою собственную специальную функцию в C, чтобы сделать это, но буду желать к тому, если это не может быть сделано эффективно в R.
Не уверен, что понимаю, но вы хотите использовать order ()
:
R> foo <- c(1,3,2, 5,4)
R> bar <- c(2,6,4,10,8)
R> fooind <- order(foo) # index of ordered
R> foo[fooind]
[1] 1 2 3 4 5
R> bar[fooind]
[1] 2 4 6 8 10
R>