varias superponer studio lineas graficos graficas r matrix

studio - superponer graficas en r



Encontrar el índice de fila que contiene el valor máximo usando R (3)

Dada la siguiente matriz, supongamos que quiero encontrar el valor máximo en la columna dos:

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

Sé que max(mat[,2]) devolverá 8. ¿Cómo puedo devolver el índice de la fila, en este caso la fila dos?


¿Qué tal lo siguiente, donde y es el nombre de su matriz y está buscando el máximo en toda la matriz:

row(y)[y==max(y)]

si quieres extraer la fila:

y[row(y)[y==max(y)],] # this returns unsorted rows.

Para devolver las filas ordenadas, use:

y[sort(row(y)[y==max(y)]),]

La ventaja de este enfoque es que puedes cambiar el contenido condicional de todo lo que necesites. Además, al usar col(y) y la ubicación de la coma colgante, también puede extraer columnas.

y[,col(y)[y==max(y)]]

Para encontrar solo la fila para el máximo en una columna en particular, diga la columna 2 que podría usar:

seq(along=y[,2])[y[,2]==max(y[,2])]

de nuevo, el condicional es flexible para buscar diferentes requisitos.

Consulte el excelente capítulo "Una introducción a S y S-Plus" de Phil Spector para obtener ideas adicionales.


?order Ver ?order . Solo necesitas el último índice (o primero, en orden decreciente), así que esto debería ser el truco:

order(matrix[,2],decreasing=T)[1]


?which.max

> which.max( matrix[,2] ) [1] 2