2015-05-05 7 views
1

Сейчас я работаю через класс интро, и я и имел некоторые проблемы с этой конкретной проблемы:Сортировка и упорядочение в R

  1. Создать функцию, которая принимает в векторе чисел V.SIZE и один номер N в качестве входов и выводит объект списка размера N, где каждый элемент списка является вектором, который содержит элементы V.Size, так что наибольшее значение в V.Size находится в векторе первого элемента списка, второе наибольшее значение в V.Sizeis в векторе второго элемента списка и т. Д. (N + 1) упорядоченное значение V.Size должно быть в первом векторе списка, (N + 2) упорядоченное значение V.Size должно быть в второй вектор списка и т. д.

Теперь, это то, что я делал до сих пор, я пытаюсь сделать пример код:

V.Size <- c(5,4,2,3,1) 
n <- 5 
Function <- c(V.Size, n) 
Function 
[1] 5 4 2 3 1 5 

sort(Function, decreasing=TRUE) 
[1] 5 5 4 3 2 1 

Проблемы я имею с (N + 1), (N +-) и его упорядочение.

ответ

0

Первым шагом к решению этого вопроса будет создание вектора позиции списка для каждого элемента в отсортированном V.size. Это в основном вектор (1, 2, ..., N, 1, 2, ..., N, ...), общей длины V.size. Вы можете получить, что с:

V.Size <- c(5,4,2,3,1) 
n <- 2 
rep(1:n, length.out=length(V.Size)) 
# [1] 1 2 1 2 1 

Теперь вы можете использовать функцию split, чтобы создать список на основе этих заданий:

split(sort(V.Size, decreasing=TRUE), rep(1:n, length.out=length(V.Size))) 
# $`1` 
# [1] 5 3 1 
# 
# $`2` 
# [1] 4 2