按另一个顺序对向量进行重新排序

问题描述 投票:0回答:1

我有两个向量:

vec1 <- c(1, 0, 2, 3)
vec2 <- c(1, 2, 3, 4)

[我想做类似order(vec1) <- order(vec2)的事情,即根据vec1的顺序更改vec2本身的顺序。

最好是我正在寻找Rcpp解决方案,但是基数R中的任何东西都将是好的。

我已经尝试过在vec1[order(vec2)]中使用sort_indexRcppArmadillo,但这显然不能满足我的需求。

所需的输出:

 vec1 <- c(0, 1, 2, 3)

# [1] 0 1 2 3

我在任何向量中都没有重复的值。

r sorting rcpp
1个回答
1
投票

我们可以在'vec2'上输入order并将其用作'vec1'的索引

vec1[order(-vec2)]
#[1] 0 1
© www.soinside.com 2019 - 2024. All rights reserved.