2013-04-15 3 views
1

Как получить младший и второй младший элемент списка? Есть ли какая-то функция, которая делает это?Получение младшего элемента списка

Пример:

a <- c(3,2,1) 
minor(a) 
1 
sminor(a) 
2 
+1

Что делать вы хотите вернуть, когда 'a <- c (3,1,1)'? –

+0

Более типичный термин для этого - это минимум, а не «младший». Термин «minor» используется при обсуждении некоторых матричных операций, поэтому использование здесь показалось несоответствующим. Встроенная функция - 'min'. –

ответ

4

Что об использовании sort?

# slightly less confusing test values 
x <- c(2,7,5) 

# get the second smallest value 
sort(x)[2] 
[1] 5 

Или, чтобы получить индекс второго наименьшего числа вместо значения, используйте order:

order(x)[2] 
[1] 3 

... где вы могли бы вернуть значение с

x[order(x)[2]] 
[1] 5 
4

Минимальное значение?

> min(a) 
[1] 1 

И второе место:

> min(a[a!=min(a)]) 
[1] 2 
2

Если вы хотите немного другое поведение (в случае повторных значений):

min(a) 

min(a[-which.min(a)]) 
Смежные вопросы