Diberikan matriks berikut mari kita asumsikan saya ingin menemukan nilai maksimum di kolom dua:
mat <- matrix(c(1:3,7:9,4:6), byrow = T, nc = 3)
mat
[,1] [,2] [,3]
[1,] 1 2 3
[2,] 7 8 9
[3,] 4 5 6
Saya tahu max(mat[,2])
akan mengembalikan 8. Bagaimana saya bisa mengembalikan indeks baris, dalam hal ini baris dua?
order
mengembalikan indeks yang dimiliki setiap elemen, tetapi diurutkan berdasarkan nilai elemen.rank
mengembalikan indeks yang akan dimiliki setiap elemen , jika daftar diurutkan terlebih dahulu. Dengan demikianorder
mengembalikan nilai indeks saat ini; dan digunakan sebagai "pengindeks" dalam istilah pandas.Bagaimana dengan yang berikut ini, dimana y adalah nama dari matriks anda dan anda sedang mencari nilai maksimum di seluruh matriks:
jika Anda ingin mengekstrak baris:
Untuk mengembalikan baris yang diurutkan, gunakan:
Keuntungan dari pendekatan ini adalah Anda dapat mengubah bagian dalam bersyarat menjadi apa pun yang Anda butuhkan. Selain itu, menggunakan
col(y)
dan lokasi tanda koma gantung Anda juga dapat mengekstrak kolom.Untuk menemukan hanya baris untuk maks di kolom tertentu, katakan kolom 2, Anda dapat menggunakan:
lagi-lagi persyaratannya fleksibel untuk mencari persyaratan yang berbeda.
Lihat Bab 5 "Pengantar S dan S-Plus" yang sangat baik dari Phil Spector untuk gagasan tambahan.
sumber