как выполнить процедуру комбинирования для вектора, чтобы у меня был исходный вектор в качестве первой строки - PullRequest
0 голосов
/ 11 октября 2018

У меня есть этот вектор

 b=c(5,8,9)

Я хочу выполнить комбинацию для b, выбирая 2 элемента за раз так, чтобы у меня были оригинальные элементы b в качестве моей первой строки, чтобы получить

        [,1] [,2] [,3]
[1,]    5     8    9
[2,]    8     9    5

Я пробовал combn (b, 2), и это дает мне

        [,1] [,2] [,3]
[1,]    5     5    8
[2,]    8     9    9

Могу ли я получить помощь для достижения желаемого результата?

1 Ответ

0 голосов
/ 06 ноября 2018

Поскольку вторая строка желаемого результата не определена однозначно, нет необходимости в каких-либо сложных инструментах:

b <- 1:10
rbind(b, c(b[-1], b[1]))
#   [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]
# b    1    2    3    4    5    6    7    8    9    10
#      2    3    4    5    6    7    8    9   10     1

В этом случае я только "сдвигаю" b на одну позицию ввторой ряд, который действительно приводит к перестановке.Я предполагаю, что элементы b не повторяются.

...