¿Y el siguiente, donde y es el nombre de su la matriz y que busca el máximo en toda la matriz:
row(y)[y==max(y)]
si desea extraer la fila:
y[row(y)[y==max(y)],] # this returns unsorted rows.
Para volver utilizan registros ordenados:
y[sort(row(y)[y==max(y)]),]
La ventaja de este enfoque es que se puede cambiar el condicional en el interior para cualquier cosa que necesite. Además, usando col(y)
y la ubicación de la coma colgante, también puede extraer columnas.
y[,col(y)[y==max(y)]]
para encontrar la fila para el máximo en una columna en particular, dicen que la columna 2 se podría utilizar:
seq(along=y[,2])[y[,2]==max(y[,2])]
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, capítulo 5, para obtener ideas adicionales.
+1 Me gusta esta respuesta porque me permite ver fácilmente los primeros, en lugar de solo el máximo. Lo encontré útil para buscar las fechas de valores máximos cercanos a otra columna. – djhocking
Pero tenga en cuenta que esto es más lento que which.max, porque necesita ordenar toda la columna :) – bartektartanus
@bartektartanus Y ¿cómo se supone que.max se da cuenta de la máxima? : p –