【问题标题】:Find ranges in Matrix在矩阵中查找范围
【发布时间】:2016-01-26 11:25:35
【问题描述】:

有一个像这样的数字向量

c(3,10,24,29,37)->k

还有一张桌子

    c(1,3)->l1
    c(9,12)->l2
    c(24,27)->l3
rbind(l1,l2)->ll
rbind(ll,l3)->l3

   [,1] [,2]
l1    1    3
l2    9   12
l3   24   27

我怎样才能找到向量中的哪些数字在表格的范围内。这里的结果是 3,24 和 10。也许只是这些数字的索引......

【问题讨论】:

  • 不是很清楚,可能是k[findInterval(k, sort(l3)) < length(l3)]
  • 一切都可以重现...
  • 由于长度不兼容,您在尝试创建数据时会收到很多警告。也不清楚你为什么使用矩阵结构而不是向量
  • 是的,抱歉 - 我刚刚改了..

标签: r matrix vector


【解决方案1】:

您可以尝试sapplyany 和条件语句:

indx <- sapply(k, function(x) any(x >= l3[,1] & x <= l3[,2]))
k[indx]
[1]  3 10 24

【讨论】:

  • 有加速的机会吗?我的表像 60k 行,需要很长时间(现在等待超过 15 分钟)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-12-30
  • 1970-01-01
  • 2020-03-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-01-21
相关资源
最近更新 更多