【问题标题】:Most efficient way to get index in a sorted vector in R?在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))

【问题讨论】:

    标签: r performance indexing match


    【解决方案1】:

    你可以使用findInterval

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

    【讨论】:

    • 谢谢,我做了一个测试,findInterval 似乎快得多,~100 倍。
    猜你喜欢
    • 2011-08-28
    • 2014-12-28
    • 2015-05-23
    • 1970-01-01
    • 2013-08-29
    • 2017-02-26
    • 2011-01-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多