在R中的排序向量中获取索引的最有效方法?

Posted

技术标签:

【中文标题】在R中的排序向量中获取索引的最有效方法?【英文标题】:Most efficient way to get index in a sorted vector in R? 【发布时间】:2021-06-07 22:58:19 【问题描述】:

我有一个已排序的向量 x 和一个包含限制的向量 L(按升序排列,没有特定假设),我想将所有限制的最大索引存储在 x 中。我有一个解决方案,但似乎效率低下。

最快的方法是什么?

x = sort(runif(n = 1e6))
L = sort(runif(n = 100))
index = sapply(L, function(l) which.max(x>l))

【问题讨论】:

【参考方案1】:

你可以使用findInterval

x = sort(runif(n = 1e6))
L = sort(runif(n = 100))
findInterval(L, x) + 1

【讨论】:

谢谢,我做了一个测试,findInterval 似乎快得多,~100 倍。

以上是关于在R中的排序向量中获取索引的最有效方法?的主要内容,如果未能解决你的问题,请参考以下文章

在R中的几列中获取月度均值的有效方法

从 HDF5 获取表索引的最有效方法

将元素插入到有序向量中的最有效方法是什么?

获取长向量中最小值索引的有效方法,python

如何获取向量的排序索引?

根据名称向量获取列索引(在R中)