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

В поисках решения для следующего:

Есть два вектора:

a <- c(2,1,3,4,7,6,5,9,8,10)
b <- c(3,2,1,6,5,4,7,8,9,10)

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

c <- c(2,3,1,6,7,4,5,9,8,10)

, чтобы:

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

Этот вопрос не относится к случаям, когда a и b являются двойными векторами,поэтому следующий вопрос также задается r - переупорядочить второй двойной вектор в соответствии с первым двойным вектором

1 Ответ

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

Мы можем просто использовать 'a' в качестве индекса

c1 <- b[a]
b[c1] == a
#[1] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE

Если значения в 'a' не являются целочисленными, т.е. numeric double

b[order(a)]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...