행렬의 행별로 최소값에 0을 할당하는 방법 (빠르고 효율적인 방법)?

Iago

하나는 매트릭스 보유 Lambda으로 p열과 n행을 각각의 행에 대한 모든 값을 할당 원 0(모든 그런 의미에서 첫 번째 열에서의 값과 다른 열에서의 최대 값을 제외시켰다 p - 2최소값 첫 번째 열을 피하고 후).

지금 for은 다음과 같이 루프 로이 작업을 수행하고 있습니다.

set.seed(60)
(Lambda = matrix(sample.int(30),5))
     [,1] [,2] [,3] [,4] [,5] [,6]
[1,]   19   20   27   18   15   25
[2,]   16   28    1    4   22    7
[3,]    2   10    8   23    3   12
[4,]    5    6    9   17   11   29
[5,]   26   30   24   13   14   21

m <- ncol(Lambda) - 2
for(ir in seq_len(nrow(Lambda))){
    Lambda[ir, match(tail(sort(abs(Lambda[ir, 2:ncol(Lambda)]), decreasing = TRUE), m), Lambda[ir,])] <- 0
}
Lambda
     [,1] [,2] [,3] [,4] [,5] [,6]
[1,]   19    0   27    0    0    0
[2,]   16   28    0    0    0    0
[3,]    2    0    0   23    0    0
[4,]    5    0    0    0    0   29
[5,]   26   30    0    0    0    0

좋아, 하나는 목표를 얻지 만 행이 많으면 문제가 될 것입니다. for루프를 사용하지 않는 솔루션이 있습니까? 함께 할 수는 lapply있지만 정말 효율적인지 확실하지 않습니다. 아마도 data.table행렬을 변환 한 후에?

감사합니다!

F. 개인

다음을 생각할 수있는 벡터화 된 버전 :

vectorized <- function(Lambda) {
  max <- matrixStats::rowMaxs(Lambda, cols = -1)
  noreplace <- sweep(Lambda, 1, max, "==")
  noreplace[, 1] <- TRUE
  Lambda * noreplace
}

그러나 @Vandenman의 for 루프보다 빠르지 않습니다.

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

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

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

행렬의 True 값에 인덱스를 할당하는 효율적인 방법

분류에서Dev

큰 data.frame의 행을 R의 함수에 인수로 전달하는 가장 빠르고 효율적인 방법

분류에서Dev

R에서 희소 행렬의 대각선을 0으로 만드는 메모리 효율적인 방법

분류에서Dev

cqlengine을 사용하여 카산드라에 많은 행을 삽입하고 업데이트하는 가장 빠르고 효율적인 방법

분류에서Dev

PHP와 MySQL, 빠르게 연속적으로 행을 여러 번 확인하는 효율적인 방법?

분류에서Dev

다른 행렬의 값에 따라 한 행렬의 값을 효율적으로 이동하는 방법

분류에서Dev

NumPy 행렬의 특정 열을 제외하고 최대 요소의 위치를 얻는 효율적인 방법이 있습니까?

분류에서Dev

NumPy 행렬의 특정 열을 제외하고 최대 요소의 위치를 얻는 효율적인 방법이 있습니까?

분류에서Dev

완전히 별개의 두 가지를 grep하고 값을 별도의 변수에 할당하는 가장 효율적인 방법은 무엇입니까?

분류에서Dev

완전히 별개의 두 가지를 grep하고 값을 별도의 변수에 할당하는 가장 효율적인 방법은 무엇입니까?

분류에서Dev

행렬 (R)의 값을 효율적으로 대체하는 방법

분류에서Dev

행렬의 행에서 최소값을 제거하는 방법

분류에서Dev

Bash에서 계산을 수행하는 효율적인 방법

분류에서Dev

Bash에서 계산을 수행하는 효율적인 방법

분류에서Dev

팬더에서 행을 반복하는 효율적인 방법

분류에서Dev

.isin을 pandas의 각 행에 적용하는 효율적인 방법

분류에서Dev

팬더에서 행 그룹 간의 시간 차이를 계산하는 빠르고 효율적인 방법은 무엇입니까?

분류에서Dev

행렬의 3D 스택에서 numpy / scipy로 블록 대각 행렬의 3D 스택을 구성하는 효율적인 방법

분류에서Dev

큰 0 행렬 파이썬을 만드는 메모리 효율적인 방법

분류에서Dev

파이썬에서 변경 세트의 최소값과 최대 값을 찾는 효율적인 방법

분류에서Dev

두 개의 행렬 행을 열로 효율적으로 곱하는 방법

분류에서Dev

Bash의 변수에 행렬 값을 할당하는 방법

분류에서Dev

행렬에서 인접한 요소를 효율적으로 찾는 방법

분류에서Dev

희소 Scipy 행렬에 대해 행을 0으로 설정하는 가장 효율적인 방법은 무엇입니까?

분류에서Dev

이미지에서 적분을 수행하는 효율적인 방법

분류에서Dev

루프에서 행렬의 모든 요소에 값을 할당하는 방법

분류에서Dev

많은 동적 SQL을 실행하는 효율적인 방법

분류에서Dev

numpy를 사용하여 행렬 int 값을 str에 매핑하는 효율적인 방법

분류에서Dev

Boruta 출력을 사용하여 R의 glm에서 변수를 빠르고 효율적으로 제외하는 방법

Related 관련 기사

  1. 1

    행렬의 True 값에 인덱스를 할당하는 효율적인 방법

  2. 2

    큰 data.frame의 행을 R의 함수에 인수로 전달하는 가장 빠르고 효율적인 방법

  3. 3

    R에서 희소 행렬의 대각선을 0으로 만드는 메모리 효율적인 방법

  4. 4

    cqlengine을 사용하여 카산드라에 많은 행을 삽입하고 업데이트하는 가장 빠르고 효율적인 방법

  5. 5

    PHP와 MySQL, 빠르게 연속적으로 행을 여러 번 확인하는 효율적인 방법?

  6. 6

    다른 행렬의 값에 따라 한 행렬의 값을 효율적으로 이동하는 방법

  7. 7

    NumPy 행렬의 특정 열을 제외하고 최대 요소의 위치를 얻는 효율적인 방법이 있습니까?

  8. 8

    NumPy 행렬의 특정 열을 제외하고 최대 요소의 위치를 얻는 효율적인 방법이 있습니까?

  9. 9

    완전히 별개의 두 가지를 grep하고 값을 별도의 변수에 할당하는 가장 효율적인 방법은 무엇입니까?

  10. 10

    완전히 별개의 두 가지를 grep하고 값을 별도의 변수에 할당하는 가장 효율적인 방법은 무엇입니까?

  11. 11

    행렬 (R)의 값을 효율적으로 대체하는 방법

  12. 12

    행렬의 행에서 최소값을 제거하는 방법

  13. 13

    Bash에서 계산을 수행하는 효율적인 방법

  14. 14

    Bash에서 계산을 수행하는 효율적인 방법

  15. 15

    팬더에서 행을 반복하는 효율적인 방법

  16. 16

    .isin을 pandas의 각 행에 적용하는 효율적인 방법

  17. 17

    팬더에서 행 그룹 간의 시간 차이를 계산하는 빠르고 효율적인 방법은 무엇입니까?

  18. 18

    행렬의 3D 스택에서 numpy / scipy로 블록 대각 행렬의 3D 스택을 구성하는 효율적인 방법

  19. 19

    큰 0 행렬 파이썬을 만드는 메모리 효율적인 방법

  20. 20

    파이썬에서 변경 세트의 최소값과 최대 값을 찾는 효율적인 방법

  21. 21

    두 개의 행렬 행을 열로 효율적으로 곱하는 방법

  22. 22

    Bash의 변수에 행렬 값을 할당하는 방법

  23. 23

    행렬에서 인접한 요소를 효율적으로 찾는 방법

  24. 24

    희소 Scipy 행렬에 대해 행을 0으로 설정하는 가장 효율적인 방법은 무엇입니까?

  25. 25

    이미지에서 적분을 수행하는 효율적인 방법

  26. 26

    루프에서 행렬의 모든 요소에 값을 할당하는 방법

  27. 27

    많은 동적 SQL을 실행하는 효율적인 방법

  28. 28

    numpy를 사용하여 행렬 int 값을 str에 매핑하는 효율적인 방법

  29. 29

    Boruta 출력을 사용하여 R의 glm에서 변수를 빠르고 효율적으로 제외하는 방법

뜨겁다태그

보관