행렬의 최대 요소 값과 그 위치 (행렬의 행 및 열 ID)를 찾고 싶습니다.행렬에서 최대 값의 행 및 열 인덱스 찾기
다음 함수를 사용하여 행렬의 행과 열을 반환합니다.
이것은 악의적 인 해킹처럼 보입니다. 이것은 내가 본래의 방법이 없을 것 같은 일종의 것입니다. 거기에 더/R 방법은 있습니까?
mm <- matrix(rnorm(100), 10, 10)
maxCords <- matxMax(mm)
mm[maxCords]
행렬의 최대 요소 값과 그 위치 (행렬의 행 및 열 ID)를 찾고 싶습니다.행렬에서 최대 값의 행 및 열 인덱스 찾기
다음 함수를 사용하여 행렬의 행과 열을 반환합니다.
이것은 악의적 인 해킹처럼 보입니다. 이것은 내가 본래의 방법이 없을 것 같은 일종의 것입니다. 거기에 더/R 방법은 있습니까?
mm <- matrix(rnorm(100), 10, 10)
maxCords <- matxMax(mm)
mm[maxCords]
당신은이에 대한
## Some data
set.seed(123)
mm <- matrix(rbinom(40, 20, 0.5), 8, 5)
mm
# [,1] [,2] [,3] [,4] [,5]
# [1,] 9 10 8 11 11
# [2,] 12 10 6 11 12
# [3,] 9 14 9 10 6
# [4,] 13 10 14 11 10
# [5,] 13 11 13 9 12
# [6,] 6 10 11 8 8
# [7,] 10 7 11 14 9
# [8,] 13 13 16 13 8
which(mm == max(mm), arr.ind = TRUE)
# row col
# [1,] 8 3
두 번째 최대 값의 위치를 찾는 방법은 무엇입니까? 두 번째 최대 값은 첫 번째 최대 값과 같을 수 있으며,이 경우 첫 번째 최대 값과 정확히 일치하는 두 번째 최대 값의 위치를 얻고 싶습니다. – user2543622
@ user2543622, 설치시 예제에서 제안 된 솔루션을 사용해 보셨습니까? 제안 된 솔루션은 최대 값과 동일한 행렬의 모든 요소 목록을 제공합니다. 따라서 동점이 있다면 모두 얻을 수 있습니다. – QuantIbex
어떻게 할 수있는 다음과 같이 내가 사용
matxMax <- function(mtx)
{
colmn <- which(mtx == max(mtx)) %/% nrow(mtx) + 1
row <- which(mtx == max(mtx)) %% nrow(mtx)
return(matrix(c(row, colmn), 1))
}
은 다음과 같습니다
여기 내 기능입니까?
which.min(mm)
which.max(mm)
'which.min'은'which.max'가 아닌 배열 인덱스를 반환합니다. 둘 다 행렬을 벡터로 취급하고 행 및 열 색인 대신 벡터 색인을 반환합니다. –
해결책은 동일하지만 검색을 수행 한 결과 최대 및 최소 (최대 분을 검색하는 것으로 기억해야 함) 아래에 솔루션이있는 경우가 있다고 생각합니다. 또한 기능 (이 경우 중복 됨)은 교육적 가치가있을 수 있습니다. – ricardo