You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

R语言如何基于一个向量的大小顺序对另一个向量匹配排序

你需要匹配两个向量的秩对应关系,正确实现方法是先对y做升序排序,再用x的秩作为索引提取值即可,核心代码如下:

sort(y)[rank(x)]

第一个示例验证

x <- c(1,5,2)
y <- c(4,5,1)
sort(y)[rank(x)]
# 输出结果:1 5 4,完全符合预期

第二个示例验证

x <- c(1,5,7,3,4,2)
y <- c(4,5,6,2,6,8)
sort(y)[rank(x)]
# 输出结果:2 6 8 5 6 4

这里x的最大值7位于第三个位置,对应输出y的最大值8也在第三个位置,符合需求。

实现原理

  • rank(x)会得到x中每个元素对应的大小排名,x中最小的元素排名为1,次小的为2,以此类推
  • sort(y)会把y按照从小到大的顺序排列
  • 用x的排名作为索引从排序后的y中取值,就能保证x中第k小的位置,对应放y中第k小的值,实现二者大小顺序完全一一对应

内容的提问来源于stack exchange,提问作者Z. Zhang

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 20:39:03