한 벡터에서 다른 벡터의 값 사이에있는 값 찾기

리치 스크 라 이븐

키 값 사이에있는 벡터 값을 찾는 데 도움이 필요합니다.

예를 들어, 다음 벡터 xy

x <- c(2, 6, 10)
y <- c(7, 1, 9, 12, 4, 6, 3)

y사이에 x있지만 같지 않은 모든 값을 찾고 싶습니다 x.

list(y[y > 2 & y < 6], y[y > 6 & y < 10])
# [[1]]
# [1] 4 3
#
# [[2]]
# [1] 7 9

따라서 위의 결과에서

  • 3과 4는 2와 6 사이입니다.
  • 7과 9는 6과 10 사이입니다.
  • 12는 아무것도 아니므로 제외됩니다
  • 6은 6과 같으므로 제외됩니다.

나는 이것에 대해 잠시 동안 작업을 해왔고 나는 어리둥절합니다. 나는 당신에게 코드를 보여줄 것이지만 그것은 단지 추악한 것입니다.

한 벡터에서 다른 벡터의 값 사이에있는 값을 어떻게 빨리 찾을 수 있습니까?

A5C1D2H2I1M1N2O1R2T1

아마도 이것이 당신을 위해 일할 것입니다.

lapply(split(y[y > min(x) & y < max(x)], 
             findInterval(y[y > min(x) & y < max(x)], x)), 
       function(z) z[!z %in% x]) 
# $`1`
# [1] 4 3
# 
# $`2`
# [1] 7 9

물론, 예를 들어 "data.table"에서 between(또는 %between%)를 사용하여 분할하기 전에 DRY 및 하위 집합 "y"를 유지하는 것이 좋습니다 .

library(data.table)
Z <- y[y %between% range(x) & !y %in% x]
split(Z, findInterval(Z, x))
# $`1`
# [1] 4 3
#
# $`2`
# [1] 7 9

최신 정보

참고로 지금까지 세 가지 옵션 모두 매우 빠릅니다.

set.seed(1)
x <- sort(sample(100000, 20, FALSE))
y <- sample(100000, 100000, TRUE)

AM <- function(x, y) {
  Z <- y[y %between% range(x) & !y %in% x]
  split(Z, findInterval(Z, x))
}

DA <- function(x, y) {
  indx <- Map(function(x, z) x + seq_len(z), x[-length(x)], diff(x) - 1)
  lapply(indx, function(x) y[y %in% x])
}

user <- function(x, y) {
  m <- t(diff(sign(outer(x, y, "-"))) == 2)
  split((m*y)[m], col(m)[m])
}

library(microbenchmark)
microbenchmark(AM(x, y), DA(x, y), user(x, y))
# Unit: milliseconds
#        expr       min        lq      mean    median        uq      max neval
#    AM(x, y)  22.58939  23.24731  26.29092  23.79639  25.64548 140.5610   100
#    DA(x, y) 149.46997 157.48534 162.47526 160.01823 164.74851 287.0808   100
#  user(x, y) 327.38835 437.44064 445.71955 446.65938 467.97784 637.3121   100

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

다른 벡터에서 한 벡터의 고유 값 빈도 찾기

분류에서Dev

다른 벡터의 값 사이에있는 한 벡터의 값 계산

분류에서Dev

두 개의 다른 벡터에서 값을 선택하는 벡터 만들기

분류에서Dev

C ++에서 벡터의 값 찾기

분류에서Dev

움직이는 창에 대한 벡터의 다중 최대 값 찾기

분류에서Dev

유사하고 다른 벡터에서 사용할 수있는 값 찾기

분류에서Dev

다른 벡터에서 벡터보다 크거나 같은 첫 번째 값의 인덱스 찾기

분류에서Dev

R의 벡터 값이 다른 벡터에 있는지 확인

분류에서Dev

벡터에 다른 값 곱하기

분류에서Dev

R에서 다른 벡터의 부분 집합에 부분 집합이있는 벡터 값 반환 사용

분류에서Dev

동일한 벡터 조합에 대해 서로 다른 상관 값 얻기

분류에서Dev

동일한 벡터 조합에 대해 서로 다른 상관 값 얻기

분류에서Dev

다른 벡터의 값, 확률을 기반으로 R에서 임의 벡터 생성

분류에서Dev

R은 데이터 프레임에서 다른 벡터의 값보다 작은 값을 찾습니다.

분류에서Dev

R에서 벡터의 값 바꾸기

분류에서Dev

정렬 된 벡터 벡터에서 특정 값의 인덱스 범위 찾기

분류에서Dev

동일한 벡터에서 가장 가까운 다른 값

분류에서Dev

R 데이터 테이블에서 값의 벡터를 다른 값의 벡터로 대체 / gsub하는 방법

분류에서Dev

C ++에서 재귀 적으로 벡터의 최대 값 찾기

분류에서Dev

벡터에서 NA 값의 인덱스 찾기

분류에서Dev

R의 벡터에서 연속 값 찾기

분류에서Dev

Matlab : 벡터 B의 값을 기반으로 벡터 A에서 값 추출

분류에서Dev

한 벡터에서 다른 벡터로의 변환을 나타내는 쿼터니언 찾기

분류에서Dev

Clojure-벡터에서 동일한 값과 인덱스의 가장 긴 행을 찾습니다.

분류에서Dev

다른 벡터에있는 특정 객체의 벡터에서 두 번째로 큰 값

분류에서Dev

다른 벡터의 값보다 작은 한 벡터의 모든 값 차이 합산

분류에서Dev

R에있는 다른 벡터의 조건에 따라 데이터 프레임의 벡터에 값 할당

분류에서Dev

파이썬에서 한 행에 여러 개의 최대 값이있을 때 2 차원 벡터의 각 행에서 최대 값 찾기

분류에서Dev

다른 배열의 각 요소에 대해 배열에서 가장 가까운 값을 찾는 벡터화

Related 관련 기사

  1. 1

    다른 벡터에서 한 벡터의 고유 값 빈도 찾기

  2. 2

    다른 벡터의 값 사이에있는 한 벡터의 값 계산

  3. 3

    두 개의 다른 벡터에서 값을 선택하는 벡터 만들기

  4. 4

    C ++에서 벡터의 값 찾기

  5. 5

    움직이는 창에 대한 벡터의 다중 최대 값 찾기

  6. 6

    유사하고 다른 벡터에서 사용할 수있는 값 찾기

  7. 7

    다른 벡터에서 벡터보다 크거나 같은 첫 번째 값의 인덱스 찾기

  8. 8

    R의 벡터 값이 다른 벡터에 있는지 확인

  9. 9

    벡터에 다른 값 곱하기

  10. 10

    R에서 다른 벡터의 부분 집합에 부분 집합이있는 벡터 값 반환 사용

  11. 11

    동일한 벡터 조합에 대해 서로 다른 상관 값 얻기

  12. 12

    동일한 벡터 조합에 대해 서로 다른 상관 값 얻기

  13. 13

    다른 벡터의 값, 확률을 기반으로 R에서 임의 벡터 생성

  14. 14

    R은 데이터 프레임에서 다른 벡터의 값보다 작은 값을 찾습니다.

  15. 15

    R에서 벡터의 값 바꾸기

  16. 16

    정렬 된 벡터 벡터에서 특정 값의 인덱스 범위 찾기

  17. 17

    동일한 벡터에서 가장 가까운 다른 값

  18. 18

    R 데이터 테이블에서 값의 벡터를 다른 값의 벡터로 대체 / gsub하는 방법

  19. 19

    C ++에서 재귀 적으로 벡터의 최대 값 찾기

  20. 20

    벡터에서 NA 값의 인덱스 찾기

  21. 21

    R의 벡터에서 연속 값 찾기

  22. 22

    Matlab : 벡터 B의 값을 기반으로 벡터 A에서 값 추출

  23. 23

    한 벡터에서 다른 벡터로의 변환을 나타내는 쿼터니언 찾기

  24. 24

    Clojure-벡터에서 동일한 값과 인덱스의 가장 긴 행을 찾습니다.

  25. 25

    다른 벡터에있는 특정 객체의 벡터에서 두 번째로 큰 값

  26. 26

    다른 벡터의 값보다 작은 한 벡터의 모든 값 차이 합산

  27. 27

    R에있는 다른 벡터의 조건에 따라 데이터 프레임의 벡터에 값 할당

  28. 28

    파이썬에서 한 행에 여러 개의 최대 값이있을 때 2 차원 벡터의 각 행에서 최대 값 찾기

  29. 29

    다른 배열의 각 요소에 대해 배열에서 가장 가까운 값을 찾는 벡터화

뜨겁다태그

보관