Самый эффективный способ отсортировать два вектора в строго установленном порядке в R?

Что самый эффективный путь состоит в том, чтобы отсортировать два вектора в строго установленном порядке в 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.

5
задан dsimcha 21 February 2010 в 23:34
поделиться

1 ответ

Не уверен, что понимаю, но вы хотите использовать 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> 
8
ответ дан 14 December 2019 в 04:36
поделиться
Другие вопросы по тегам:

Похожие вопросы: