переупорядочить второй двойной вектор по первому двойному вектору - PullRequest
0 голосов
/ 15 сентября 2018

Этот вопрос относится к: r - переупорядочить второй вектор согласно первому . Решение там не решает проблему, когда векторы не начинаются с 1 и имеют класс double.

Учитывая следующие два вектора:

a <- c(5.1, 7.2, 4.3, 8.4)
b <- c(4.3, 7.2, 8.4, 5.1)

должен быть создан третий вектор c, который бы дал порядок, в котором необходимо переупорядочить вектор b, чтобы он был в том же порядке, что и a. В этом случае:

c <- c(4, 2, 1, 3)

такой, что:

> b[c] == a
[1] TRUE TRUE TRUE TRUE

1 Ответ

0 голосов
/ 15 сентября 2018

Разве это не c <- match(a, b)?

Это может работать безопасно, если

  • один вектор является перестановкой другого (то есть они идентичны, если оба отсортированы);
  • нет связанных значений (то есть, значение не встречается более одного раза).

Похоже, что ваше приложение соответствует этим требованиям, но мне все же полезно указать это другим читателям.

...