首页 > 解决方案 > 根据第一个双向量重新排序第二个双向量

问题描述

这个问题涉及:r - 根据 first 重新排序第二个向量。当向量不是从 1 开始并且有 class 时,那里的解决方案不能解决问题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

标签: rsortingvectordouble

解决方案


这不是c <- match(a, b)吗?

这可以安全地工作,如果

  • 一个向量是另一个向量的排列(也就是说,如果两者都已排序,则它们是相同的);
  • 没有绑定值(即,没有值出现多次)。

看起来您的应用程序符合这些要求,但我仍然可以为其他读者指出它。


推荐阅读