Как мне найти все комбинации / перестановки с порядком в R? - PullRequest
0 голосов
/ 05 мая 2018

Привет и спасибо за поиск. Я не совсем уверен, как задать этот вопрос - позвольте мне показать вам пример и то, что я надеюсь вернуть.

example <- c(1, 2, 3, 4, 5, 6)
example_combos <- combn(example, 4) 

1) Как я могу адаптировать combn (), чтобы просто дать мне комбинации, включая число 1? Кроме того, я бы не хотел, чтобы последовательности из трех или более чисел были в ряду. т.е.: (1,2,4,5), (1,2,4,6), (1,2,5,6), (1,3,4,5), (1,3,4,6), (1,3,5,6)

2) В качестве альтернативы, как бы я на самом деле позволил порядку иметь значение - значение (1,2,4,5) отличается от (2,4,5,1). Как бы я не учел последовательности из 3 или более подряд в этой ситуации - и затем, как бы я подставил под фрейм данных только столбцы, начинающиеся с 1?

Спасибо! Очень новый для R еще!

1 Ответ

0 голосов
/ 05 мая 2018

Вот ответ (или ответ в любом случае).

example_combos[ , apply( example_combos, 2, function(col){ !any( rle(diff(col))$lengths >= 2 & rle(diff(col))$values==1)   })  ]
     [,1] [,2] [,3] [,4] [,5] [,6]
[1,]    1    1    1    1    1    2
[2,]    2    2    2    3    3    3
[3,]    4    4    5    4    5    5
[4,]    5    6    6    6    6    6

А вот и объяснение:

Я подсчитываю, сколько раз прогон 1 в последовательных различиях комбинаций (которые упорядочены) происходит в любом заданном столбце матрицы example_combos. Если его больше или равно двум, это означает, что пробег составляет не менее 3.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...