2016-03-22 20 views
2

6 x 10 matrisim var. Burada her satırdaki maksimum değerin satır indeksini ve sütun dizinini bulmam gerekiyor.Matrisin her Satırında en yüksek değere sahip sütun dizini alın

 [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] 
[1,] 3 6 7 7 2 4 3 7 1  4 
[2,] 1 9 8 7 2 6 10 9 5  2 
[3,] 7 10 8 4 10 5 4 8 4  4 
[4,] 4 3 1 1 3 3 9 7 4  2 
[5,] 1 8 1 9 9 8 1 3 7  7 
[6,] 2 6 7 5 6 10 4 6 10  1 

Şimdi, satır temelinde gidin ve her satırda maksimum değerin satır dizini ve sütun indeksi almak istiyorum: Bana matrisi verir

set.seed(75) 
amat <- matrix(sample(10, size=60, replace=T), nrow=6) 

.

her satırda maksimum değeri elde etmek için, benim yaptığım:

apply(amat,1,max) 
[1] 7 10 10 9 9 10 

nasıl maksimum değerin ilk geçtiği satır ve sütun indeksleri alabilirim?

Teşekkür

+0

Bazı benzer mesajları kullanabilirsiniz: [(1)] (http://stackoverflow.com/questions/11636620/how-to-return-a-vector -en-etiketleri-of-the-maksimum), [(2)] (http://stackoverflow.com/questions/8220343/is-there-something-like-a-pmax- index), [(3)] (http://stackoverflow.com/questions/15094861/how-does-one-lookup-of-max-value-in-matrix) –

cevap

5

Biz max.col

cbind(1:nrow(amat), max.col(amat, 'first')) 
+0

Teşekkürler. Bu yardımcı oldu. Bu 'max.col' işlevinin farkında değildi. –

+0

Bunun için hangi.max' üzerinde herhangi bir tercih var mı? – cdeterman

+1

@cdeterman Sanırım her satır için 'apply' ile hangi.max' kullanmak zorundasınız ki bu döngü tekrar olacaktır. Yanlış ise "max.col" hızlı olmalıdır. – akrun

İlgili konular