Тебе не совсем ясно, в чем заключается масштаб твоей проблемы, поэтому я просто дам первое предложение, которое у меня возникнет.Используйте функцию sort
, чтобы получить список значений в порядке убывания.
sorted <- sort(x,decreasing=TRUE,index.return=TRUE)
Теперь вы можете итеративно удалять самый высокий элемент из x
.Повторное использование функции sort
снова и снова в данных вашего подмножества неэффективно - лучше сохранить постоянную копию x
и по возможности удалить ее из нее.
Рассмотреть этот подход
# random set of data with duplicates
x <- floor(runif(50)*15)
# sort with index.return returns a sorted x in sorted$x and the
# indices of the sorted values from the original x in sorted$ix
sorted <- sort(x,decreasing=TRUE,index.return=TRUE)
for( i in 1:length(x) )
{
# remove data from x
newX <- x[-sorted$ix[1:i]]
print(sort(newX,decreasing=TRUE))
}