r كيفية العثور على فهرس الصفوف والأعمدة ذات القيمة القصوى في مصفوفة




قواعد بيانات access جاهزة للتحميل (2)

هذا السؤال لديه بالفعل إجابة هنا:

أرغب في العثور على قيمة العنصر القصوى للمصفوفة وموقعها (في معرف الصف والعمود في المصفوفة).

أستخدم الوظيفة التالية لإرجاع صف وعمود المصفوفة.

يبدو هذا كاختراق سيئ - إنه نوع من الأشياء التي ربما أفتقد إليها طريقة محلية. هل هناك طريق R / أفضل؟

وهنا وظيفتي:

matxMax <- function(mtx)
{
    colmn <- which(mtx == max(mtx)) %/% nrow(mtx) + 1
    row <- which(mtx == max(mtx)) %% nrow(mtx)
    return( matrix(c(row, colmn), 1))
}

أنا أستخدم على النحو التالي:

mm <- matrix(rnorm(100), 10, 10)
maxCords <- matxMax(mm)
mm[maxCords]

Answer #1

ماذا عن هؤلاء؟

which.min(mm)
which.max(mm)

Answer #2

هل يمكن أن تفعل

## 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