4

假设我有两个这样的数组:

  • x = [10, 30, 50, 99, 299]
  • y = [3, 29, 30, 23, 55]

如何找到同时满足以下两个条件的索引?

  • x > 80 & y > 30

因此,对于我的示例,我希望返回索引为 5。我想格式看起来像这样:

findfirst(x -> x > 80 \union y -> y> 30, x,y)

但这不起作用..

同样在我的情况下, x 和 y 是数据框中的列,但是进行索引搜索也不起作用..

4

2 回答 2

5

广播似乎工作: findfirst((x .> 80) .& (y .> 30))

于 2021-09-15T08:39:21.347 回答
1

使用邮编:

julia> x = [10, 30, 50, 99, 299]
5-element Vector{Int64}:
  10
  30
  50
  99
 299

julia> y = [3, 29, 30, 23, 55]
5-element Vector{Int64}:
  3
 29
 30
 23
 55

julia> z = collect(zip(x, y))
5-element Vector{Tuple{Int64, Int64}}:
 (10, 3)
 (30, 29)
 (50, 30)
 (99, 23)
 (299, 55)

julia> findfirst(xy -> first(xy) > 80 && last(xy) > 30, z)
5
于 2021-09-15T06:46:32.980 回答