2012-02-22 16 views

risposta

69

Siete alla ricerca di which.min():

a <- c(1,2,0,3,7,0,0,0) 
which.min(a) 
# [1] 3 

which(a == min(a)) 
# [1] 3 6 7 8 

(Come si può vedere da quanto sopra, quando diversi elementi sono legati per il minimo, which.min() restituisce solo l'indice del primo È possibile utilizzare il. secondo costruire se si desidera invece gli indici di tutti gli elementi che corrispondono al valore minimo.)

+0

... sì, mi stavo chiedendo come posso ottenere gli indici di tutti gli elementi minimi? Devo scoprire quanti sono il minimo, perfetto! Mi ci è voluto un po 'di tempo per capirlo, grazie. – hhh

+1

@hhh - Per scoprire quanti elementi sono il minimo, puoi semplicemente usare: 'sum (a == min (a))'. –

11

In alternativa alla risposta di Josh

a <- c(1, 2, 0, 3, 7) 
which(a == min(a)) 

questo dà ogni indice che è uguale al valore minimo. Quindi, se abbiamo avuto più di un valore che corrisponde al valore più basso

a <- c(1, 2, 0, 3, 7, 0) 
which(a == min(a)) # returns both 3 and 6 
which.min(a)  # returns just 3 

Edit: Se state cercando è solo quanti elementi sono uguali al minimo (come si implica in uno dei commenti) è possibile fatelo invece:

a <- c(1, 2, 0, 3, 7, 0) 
sum(a == min(a)) 
Problemi correlati