2012-02-22 17 views

Odpowiedz

69

Szukacie 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 

(Jak widać z powyższego, gdy kilka elementów są przywiązane do minimum, which.min() zwraca tylko indeks pierwszego Można użyć. drugi konstrukt jeśli zamiast chcą indeksy wszystkich elementów pasujących do wartości minimalnej.)

+0

... tak, zastanawiałem się, w jaki sposób mogę uzyskać wskaźniki wszystkich minimalnych elementów? Muszę się dowiedzieć, ile jest minimalnych, idealnych! Mam trochę czasu, aby to zrozumieć, dzięki. – hhh

+1

@hhh - Aby dowiedzieć się, ile elementów jest minimalnych, możesz po prostu użyć: 'sum (a == min (a))'. –

11

Jako alternatywę do Josha odpowiedź

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

ten podaje każdy indeks, który jest równy minimalnej wartości. Więc gdybyśmy mieli więcej niż jedną wartość dopasowanie najniższą wartość

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

Edycja: Jeśli szukasz po prostu ile elementy są równe minimum (jak sugerują w jednym z komentarzy) Można zrób to zamiast:

a <- c(1, 2, 0, 3, 7, 0) 
sum(a == min(a)) 
Powiązane problemy